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

xcz*_*zhh 8 php codeigniter

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

irc*_*ell 10

区别在于语义.

是一个特定的功能块(通常被完全包封的功能的实现.

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

一个框架是赋予你如何编写代码架构选择库.

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

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


Bol*_*ock 6

在一般的编程术语中,并非每个库都必须由多个类组成。事实上,也不是所有的库都必须由类组成——这实际上取决于实现(有时还取决于语言)。当维基百科开始时(斜体是我的):

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

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