小编典典

框架和库有什么区别?

all

框架 有什么区别?

我一直认为库是一组对象和函数,专注于解决特定问题或应用程序开发的特定领域(即数据库访问)。另一方面,作为一个以特定方法(即
MVC)为中心并涵盖应用程序开发的所有领域的库的集合的框架。


阅读 106

收藏
2022-02-28

共1个答案

小编典典

实际上,这些术语可能意味着很多不同的东西,具体取决于它们使用的上下文。

例如,在 Mac OS X 上,框架只是库,打包成一个包。在捆绑包中,您将找到一个实际的动态库 (libWhatever.dylib)。裸库和 Mac
上的框架的区别在于,一个框架可以包含多个不同版本的库。它可以包含额外的资源(图像、本地化字符串、XML 数据文件、UI
对象等),除非框架公开发布,否则它通常包含使用库所需的必要 .h 文件。

因此,您将所有内容都包含在一个包中,您需要在应用程序中使用该库(没有 .h 文件的 C/C++/Objective-C
库非常没用,除非您根据某些库文档自己编写它们),而不是一堆要移动的文件(Mac 包只是 Unix 级别的目录,但 UI 将其视为单个文件,就像您在 Java
中拥有 JAR 文件一样,当您单击它时,通常看不到里面有什么,除非您明确选择显示内容)。

维基百科称框架为“流行语”。它将软件框架定义为

软件框架是软件系统(或子系统)的可重用设计。软件框架可能包括支持程序、代码库、脚本语言或其他软件,以帮助开发和粘合软件项目的不同组件。可以通过 API
公开框架的各个部分。

所以我想说图书馆就是这样,“图书馆”。它是对象/函数/方法的集合(取决于您的语言),您的应用程序“链接”它,因此可以使用对象/函数/方法。它基本上是一个包含可重用代码的文件,通常可以在多个应用程序之间共享(您不必一遍又一遍地编写相同的代码)。

框架可以是您在应用程序开发中使用的一切。它可以是一个库、许多库的集合、脚本的集合或创建应用程序所需的任何软件。框架只是一个非常模糊的术语。

这是一篇关于某个人关于“库与框架”主题的文章。我个人认为这篇文章很有争议。他在那儿说的没有错,但是,他只是从框架的多个定义中挑选了一个,并将其与库的经典定义进行了比较。例如,他说您需要一个子类化框架。真的吗?我可以在库中定义一个对象,我可以链接它,并在我的代码中对它进行子类化。我不明白我如何需要一个“框架”。在某种程度上,他更愿意解释当今如何使用框架一词。正如我之前所说,这只是一个炒作的词。一些公司只发布一个普通库(在任何意义上的经典库)并称其为“框架”,因为它听起来更花哨。

2022-02-28