一个类和一个库有什么区别?

时间:2011-02-10 03:09:21

标签: php codeigniter

我用Google搜索,并被告知图书馆由多个相关课程组成。但是在Codeigniter中,我发现每个库中几乎只有一个类。对不起,我对此知之甚少,但如果你能对我有所启发,我将不胜感激。非常感谢你!

3 个答案:

答案 0 :(得分:9)

区别在于语义差异。

Class 是特定功能的实现(通常完全封装功能。

是添加功能的功能单元(或仅一个)的集合。请注意,我试图远离该定义中的 class 一词。库可以是程序性的,功能性的或OOP。这并没有减损它是一个图书馆的事实。在处理OOP时,类只是帮助抽象。

框架是一个库,它为您编写代码的方式提供了架构选择。

因此每个框架都是一个库。并非每个库都是一个框架。 CodeIgniter本身可以用作框架或库。不同之处在于,如果您让图书馆指导您的架构,那么您正在使用框架。如果你不使用架构位,它就是一个库。

这绝对是一个迂腐的差异,但却是一个重要的差异。如果你正在做一个正式的架构,并且理解为什么所有内容都是专门为你的应用程序分层的,那么你将它用作库。相反,如果您正在构建它,因为CI就是这样做的,那就是使用框架。两者都有很大的好处,但值得理解它们的区别。

答案 1 :(得分:4)

在一般编程术语中,并非每个库都必须由多个类组成。事实上,并非所有的库都必须由类组成 - 它实际上取决于实现(有时是语言)。当Wikipedia开始时(我的斜体):

  

在计算机科学中,是用于开发软件的资源集合。 这些可能包括子程序,类,值或类型规范。

CodeIgniter有自己的“库”定义,在这种情况下,它只是将每个第三方应用程序类调用为自己的库。尽管如此,只要您至少有一个与库文件同名的类,就可以在同一个库文件中包含其他类。

答案 2 :(得分:1)

检查the CodeIgniter docs

  

当我们使用术语“库”时,我们通常指的是位于libraries目录中并在本用户指南的类参考中描述的类。但是,在这种情况下,我们将描述如何在应用程序/库目录中创建自己的库,以便保持本地资源和全局框架资源之间的分离。

我不认为“库”特定于固定数量的类或文件。这个引用是指你混淆的具体用法吗?

相关问题