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

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


当前回答

库——任何一组类或组件,只要客户端认为合适,就可以使用它们来完成某个任务。 框架——要求你将某些指导方针“插件”到比你更大的东西中。您只需以一种已发布的必需方式提供特定于您的应用程序/需求的部分,以便“框架可以使您的生活变得轻松”。

其他回答

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

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

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

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

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

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

我认为你很好地阐述了其中的区别:框架提供了一个我们工作的框架……不知何故,它比简单的库更“有约束”。 框架还应该为一组库添加一致性。

我会像你五岁一样解释。(没有使用编程术语。)

让我们想象一下,你不久前在你的城市开了一家汉堡店。但是作为初学者,你会觉得做汉堡太难了。你在想一种为顾客做汉堡的简单方法。 有人告诉你,如果你使用框架,你可以很容易地做bugger。你要知道有麦当劳汉堡框架和汉堡王汉堡框架。

如果你使用麦当劳汉堡框架,做巨无霸汉堡就很容易了。(但你不能做皇堡。)

如果你使用汉堡王汉堡框架,就可以很容易地做出皇堡。(但是你不能做巨无霸)

不管怎样,最后,它们都是汉堡。这里很重要的一点是,你必须遵循他们的框架规则来做汉堡。否则,你会觉得更难完成或者根本无法完成。

你也听说过有一种叫做简单汉堡-帕蒂图书馆的东西。

如果你使用这个库,你可以很容易地做出任何汉堡肉饼(X2速度)。 使用麦当劳汉堡框架还是汉堡王汉堡框架并不重要。 无论哪种方式,您仍然可以使用这个简单汉堡-帕蒂库。(即使你没有框架也可以使用这个库。)

你现在看到框架和库的区别了吗?


一旦你开始使用麦当劳汉堡框架。要切换到汉堡王的汉堡框架并不容易。既然你要把整个厨房都换了。

如果您开始使用Java Spring框架构建Web应用程序,那么稍后将很难(也许不可能)更改为Ruby on Rails框架。

但是Library,换别人会容易得多。或者你可以不用它。

我不记得这个答案的来源了(我想我是在互联网上的一个。ppt中找到的),但答案很简单。

一个库和一个框架是一组类,模块和/或代码(取决于编程语言),可以在你的应用程序中使用,并帮助你解决特定的“问题”。

这个问题可以是在应用程序中记录或调试信息、绘制图表、创建特定的文件格式(html、pdf、xls)、连接到数据库、创建应用程序的一部分或完整的应用程序或应用于设计模式的代码。

你可以有一个框架或一个库来解决所有这些问题,甚至更多,通常框架帮助你解决更复杂或更大的问题,但这只是它们主要区别的连续,而不是两者的主要定义。

库和框架之间的主要区别是它们自己的代码之间的依赖关系,换句话说,你要使用框架 需要使用FW中几乎所有的类、模块或代码 类中的一个或几个类、模块或代码 Lib在您自己的应用程序中

这意味着,如果一个框架有50个类,为了在你需要使用的应用程序中使用框架,比如说,在你的代码中有10-15个或更多的类,因为这就是设计框架的方式,一些类(类的对象)是框架中其他类的方法的输入/参数。请参阅. net框架、Spring或任何MVC框架。

但是以一个日志库为例,你可以在你的代码中使用一个log类,并帮助你解决“日志问题”,这并不意味着日志库在他的代码中没有更多的类,比如处理文件的类,处理屏幕输出,甚至数据库,但你永远不会在你的代码中接触/使用这些类,这就是为什么它是一个库而不是一个框架的原因。

还有比框架和库更多的类别,但这是跑题了。