框架和库之间的区别是什么?
我一直认为库是一组对象和函数,专注于解决特定的问题或应用程序开发的特定领域(即数据库访问);另一方面,框架是一个以特定方法论(即MVC)为中心的库的集合,它涵盖了应用程序开发的所有领域。
框架和库之间的区别是什么?
我一直认为库是一组对象和函数,专注于解决特定的问题或应用程序开发的特定领域(即数据库访问);另一方面,框架是一个以特定方法论(即MVC)为中心的库的集合,它涵盖了应用程序开发的所有领域。
当前回答
库:
它只是例程(函数式编程)或类定义(面向对象编程)的集合。其背后的原因仅仅是代码重用,即获取其他开发人员已经编写的代码。类或例程通常在域特定区域定义特定操作。例如,有一些数学库可以让开发人员只调用函数,而无需重做算法如何工作的实现。
框架:
在框架中,所有的控制流都已经在那里,并且有一堆预定义的白点,我们应该用我们的代码来填充。框架通常更复杂。它定义了一个框架,应用程序在其中定义了自己的特性来填充该框架。通过这种方式,框架将在适当的时候调用您的代码。这样做的好处是,开发人员不需要担心设计是否好,而只需考虑实现特定领域的功能。
库,框架和你的代码图像表示:
KeyDifference:
库和框架之间的关键区别是“控制反转”。当您从库中调用方法时,您处于控制之中。但是对于框架,控件是反向的:框架调用您。源。
关系:
它们都定义了API,供程序员使用。为了将它们组合在一起,我们可以将库视为应用程序的某个函数,将框架视为应用程序的骨架,而API则是将它们组合在一起的连接器。典型的开发过程通常从框架开始,然后通过API填充库中定义的函数。
其他回答
库实现功能的目的很窄,而框架往往是库的集合,为更广泛的特性提供支持。例如,库System.Drawing.dll处理绘图功能,但它只是整个. net框架的一部分。
你的解释听起来不错。库可以是任何经过编译和自包含的东西,以便在其他代码中重用,实际上对其内容没有任何限制。
另一方面,框架应该具有一系列用于应用程序开发的特定领域的功能,就像您的示例MVC一样。
我忘记在哪里看到这个定义了,但我觉得它很好。
库是从代码中调用的模块,框架是调用代码的模块。
库vs框架
Martin Fowler - InversionOfControl
库和框架是你的代码的外部代码。它可以是文件(例如。jar),系统代码(操作系统的一部分)等。
库是一组有用的代码。主要关注你的代码。库解决的任务范围很窄。例如,实用程序,排序,模块化
your code ->(has) Library API
框架或控制反转(IoC)容器[About]是更多的东西。框架解决了广泛的任务(特定于领域),你委派这个任务给框架。IoC——你的代码依赖于框架逻辑、事件…因此框架会调用你的代码。它迫使你的代码坚持它的规则(实现/扩展协议/接口/契约),传递lambdas…例如-测试,GUI, DI框架…
your code ->(has) and ->(implements) Framework API
[iOS Library vs Framework]
[DIP vs DI vs IoC]
什么是图书馆?
库是代码块的集合(可以是变量、函数、类、接口等形式),由开发人员构建,以简化其他发现其相关性的开发人员的软件开发过程。
什么是框架?
参考库的定义,我们可以将框架定义为一种工具,通过在受控的开发环境中为开发人员提供必要的库,帮助开发人员解决大量特定于领域的问题。