难道一个框架,允许你抽象的通用代码 - 而不是在一个完整的方式(例如:摘要网络连接 - 但不是你实际的数据做),并没有解决任何特定的共同要求而工具包具有通用的解决方案问题(例如:对话框控件)?
现实世界的例子: 原型是一个“框架”,但道场是一个“工具箱”。
所以我的问题是,什么是指对某事物的框架VS称这是一个工具包的标准是什么?
难道一个框架,允许你抽象的通用代码 - 而不是在一个完整的方式(例如:摘要网络连接 - 但不是你实际的数据做),并没有解决任何特定的共同要求而工具包具有通用的解决方案问题(例如:对话框控件)?
现实世界的例子: 原型是一个“框架”,但道场是一个“工具箱”。
所以我的问题是,什么是指对某事物的框架VS称这是一个工具包的标准是什么?
框架强制执行对开发商的一些设计模式,并给予一定的工具,代码生成。 这与我的第一句话坐好,因为它在一定的风格/模式生成代码。
图书馆为您提供的功能,为您按照您的意愿使用。 像C,C#的控制台的标准输入输出功能,将“内置”的PHP等功能
你可以把图书馆作为一种API的
Quoting Martin Folwer in his article on Inversion of Control:
Inversion of Control is a key part of what makes a framework different to a library. A library is essentially a set of functions that you can call, these days usually organized into classes. Each call does some work and returns control to the client.
A framework embodies some abstract design, with more behavior built in. In order to use it you need to insert your behavior into various places in the framework either by subclassing or by plugging in your own classes. The framework's code then calls your code at these points.
So in short, the big difference is that your code calls a library while a framework calls your code.
在我的书,一个框架提供了一个结构,鼓励或要求它以一定的方式来使用。 这可能是一件好事,如果开发者想要做的事情的框架的方式,因为它是很多事情是自动的更容易,但如果开发者想从框架的意图偏离它可不好。
甲工具包,在另一方面,提供了一种可以一起使用或单独使用的各种工具。 它更灵活,但需要代程序员的更多的努力。