框架和工具包之间的主要区别是什么?

时间:2009-09-12 17:02:54

标签: javascript frameworks toolkit

框架是否允许您抽象通用代码 - 但不是完整的方式(例如:抽象网络连接 - 而不是您实际使用的数据),并且没有解决任何特定的常见要求,而工具包有通用问题的解决方案(例如:对话框小部件)?

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

所以我的问题是,将框架称为框架并将其称为工具包的标准是什么?

3 个答案:

答案 0 :(得分:25)

Inversion of Control的文章中引用Martin Folwer:

  

控制倒置是其中的关键部分   什么使框架与a不同   图书馆。 图书馆本质上是一个   你可以调用的一组功能,   这些天通常组织成   类。每次通话都会做一些工作   将控制权交还给客户。

     

框架体现了一些抽象   设计,内置更多行为。   要使用它,您需要插入   你的行为进入了各个地方   框架通过子类化或   通过插入自己的类。的的   框架的代码然后调用您的代码   在这些方面

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

答案 1 :(得分:12)

Framework在开发人员上强制执行一些设计模式,并为代码生成提供一些工具。这与我的第一句话很吻合,因为它以某种风格/模式生成代码 库为您提供了根据需要使用的功能。像C的stdio函数一样, C#的控制台,PHP的“内置”功能等 您可以将库视为一种API

答案 2 :(得分:9)

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

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