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

Thi*_*raj 19 javascript frameworks toolkit

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

真实世界示例:Prototype是一个"框架",但Dojo是一个"工具包".

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

Pas*_*ent 25

引用Martin Folwer关于控制反转的文章:

控制反转是使框架与库不同的关键部分.库本质上是一组可以调用的函数,这些日子通常组织成类.每个调用都会执行一些操作并将控制权返回给客户端.

框架体现了一些抽象设计,内置了更多行为.为了使用它,您需要通过子类化或插入自己的类将行为插入到框架中的各个位置.然后框架的代码在这些点上调用您的代码.

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


Ita*_*vka 12

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


Ada*_*ume 9

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

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