框架和库之间的区别是什么?
我一直认为库是一组对象和函数,专注于解决特定的问题或应用程序开发的特定领域(即数据库访问);另一方面,框架是一个以特定方法论(即MVC)为中心的库的集合,它涵盖了应用程序开发的所有领域。
框架和库之间的区别是什么?
我一直认为库是一组对象和函数,专注于解决特定的问题或应用程序开发的特定领域(即数据库访问);另一方面,框架是一个以特定方法论(即MVC)为中心的库的集合,它涵盖了应用程序开发的所有领域。
当前回答
我会像你五岁一样解释。(没有使用编程术语。)
让我们想象一下,你不久前在你的城市开了一家汉堡店。但是作为初学者,你会觉得做汉堡太难了。你在想一种为顾客做汉堡的简单方法。 有人告诉你,如果你使用框架,你可以很容易地做bugger。你要知道有麦当劳汉堡框架和汉堡王汉堡框架。
如果你使用麦当劳汉堡框架,做巨无霸汉堡就很容易了。(但你不能做皇堡。)
如果你使用汉堡王汉堡框架,就可以很容易地做出皇堡。(但是你不能做巨无霸)
不管怎样,最后,它们都是汉堡。这里很重要的一点是,你必须遵循他们的框架规则来做汉堡。否则,你会觉得更难完成或者根本无法完成。
你也听说过有一种叫做简单汉堡-帕蒂图书馆的东西。
如果你使用这个库,你可以很容易地做出任何汉堡肉饼(X2速度)。 使用麦当劳汉堡框架还是汉堡王汉堡框架并不重要。 无论哪种方式,您仍然可以使用这个简单汉堡-帕蒂库。(即使你没有框架也可以使用这个库。)
你现在看到框架和库的区别了吗?
一旦你开始使用麦当劳汉堡框架。要切换到汉堡王的汉堡框架并不容易。既然你要把整个厨房都换了。
如果您开始使用Java Spring框架构建Web应用程序,那么稍后将很难(也许不可能)更改为Ruby on Rails框架。
但是Library,换别人会容易得多。或者你可以不用它。
其他回答
正如我一直描述的那样:
图书馆是一个工具。
框架是一种生活方式。
你可以使用任何微小的部分来帮助你。一个你必须将整个项目投入其中的框架。
图书馆是为了方便使用和提高效率。例如,您可以说Zend库通过其定义良好的类和函数帮助我们完成不同的任务。而框架通常强制以某种方式实现解决方案,如MVC(模型-视图-控制器)(引用)。它是一个定义良好的系统,用于像MVC一样分配任务。模型包含数据库端,视图用于UI接口,控制器用于业务逻辑。
库执行特定的、定义良好的操作。
框架是一个骨架,应用程序通过填充骨架来定义操作的“肉”。框架仍然有代码来连接各个部分,但最重要的工作是由应用程序完成的。
库的例子:网络协议、压缩、图像处理、字符串实用程序、正则表达式计算、数学。操作是独立的。
框架示例:Web应用程序系统,插件管理器,GUI系统。框架定义概念,而应用程序定义最终用户关心的基本功能。
库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]
我认为库是一组实现目标的实用程序(例如,套接字,加密等)。
框架是库+运行时环境。例如,ASP。NET是一个框架:它接受HTTP请求、创建页面对象、调用生命周期事件等等。框架完成了所有这些工作,您编写了一些代码,这些代码将在当前请求生命周期的特定时间运行!