框架和库之间的区别是什么?

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


当前回答

我忘记在哪里看到这个定义了,但我觉得它很好。

库是从代码中调用的模块,框架是调用代码的模块。

其他回答

库执行特定的、定义良好的操作。

框架是一个骨架,应用程序通过填充骨架来定义操作的“肉”。框架仍然有代码来连接各个部分,但最重要的工作是由应用程序完成的。

库的例子:网络协议、压缩、图像处理、字符串实用程序、正则表达式计算、数学。操作是独立的。

框架示例:Web应用程序系统,插件管理器,GUI系统。框架定义概念,而应用程序定义最终用户关心的基本功能。

你的解释听起来不错。库可以是任何经过编译和自包含的东西,以便在其他代码中重用,实际上对其内容没有任何限制。

另一方面,框架应该具有一系列用于应用程序开发的特定领域的功能,就像您的示例MVC一样。

库实现功能的目的很窄,而框架往往是库的集合,为更广泛的特性提供支持。例如,库System.Drawing.dll处理绘图功能,但它只是整个. net框架的一部分。

从Web开发人员的角度来看:

库可以很容易地被另一个库替换。但框架不能。 如果你不喜欢jquery日期选择器库,你可以替换为其他日期选择器,如bootstrap日期选择器或pickadate。 如果你不喜欢在AngularJS上构建你的产品,你不能用任何其他框架来替代。你必须重写你的整个代码库。 大多数情况下,与框架相比,库需要更少的学习曲线。例如:underscore.js是一个库,Ember.js是一个框架。

图书馆是为了方便使用和提高效率。例如,您可以说Zend库通过其定义良好的类和函数帮助我们完成不同的任务。而框架通常强制以某种方式实现解决方案,如MVC(模型-视图-控制器)(引用)。它是一个定义良好的系统,用于像MVC一样分配任务。模型包含数据库端,视图用于UI接口,控制器用于业务逻辑。