2009-09-12 191 views
18

框架是否允许您抽象通用代码 - 但不是以完整的方式(例如:抽象一个网络连接 - 但不是您实际上对数据做什么),并且不解决任何特定的通用需求,而工具箱具有解决方案到一般问题(例如:对话框小部件)?框架和工具包之间的主要区别是什么?

真实世界例如:Prototype是一个“框架”,但Dojo是一个“工具包”。

所以我的问题是,调用某个框架vs调用它作为一个工具包的标准是什么?

回答

12

Framework对开发人员强加了一些设计模式,并为代码生成提供了一些工具。这与我的第一句话很吻合,因为它以某种风格/模式生成代码。
图书馆为您提供功能,供您随意使用。像C的标准输入输出功能, 的控制台C#中,“中建” PHP等功能
。你可以把图书馆作为一种API

9

的在我的书中,一个框架提供了一个结构,鼓励或要求它以某种方式使用。如果开发人员想要以框架的方式完成任务,这可能会很好,因为很多事情都是自动的,但如果开发人员想要偏离框架的意图,这可能会很糟糕。

另一方面,工具包提供了可以一起使用或分开使用的各种工具。它更加灵活,但代表程序员需要更多努力。

25

Inversion of Control引用马丁Folwer在他的文章:

控制反转是 一个关键部分是什么让一个 库不同的框架。 一个库本质上是一组功能,你可以调用, 这几天通常组织成 类。每个呼叫都有一些工作,并且 将控制权返回给客户端。

一个框架体现了一些抽象 设计,内置了更多的行为。 为了使用它,你需要框架可以通过继承或 插入 您的行为变成不同的地方在你自己的堵漏类。 框架的代码然后在这些点调用您的代码 。

简而言之,最大的区别在于您的代码在框架调用您的代码时调用库。

相关问题