Vin*_*vic 12
|------------------------|
| (------) |
| (ClassA) |
| (------) |
| (-----------) |
| ((Singleton)) |
| (-----------) |
| (---------) |
| ((Factory)) |
| (---------) |
| |
| |
|------------------------|
Legend:
|---| Framework
(---) Class
() Design Pattern
Run Code Online (Sandbox Code Playgroud)
框架是一组执行特定任务的相关类.这些类可能会也可能不会实现某种设计模式.
Özg*_*gür 10
这是GOF的答案:
由于模式和框架有一些相似之处,人们常常想知道它们是否有差异,甚至是否有所不同.它们在三个方面有所不同:
设计模式比框架更抽象.框架可以体现在代码中,但只有模式的例子可以体现在代码中.框架的优势在于它们可以用编程语言写下来,不仅可以研究,还可以直接执行和重用.相比之下,本书中的设计模式必须在每次使用时实施.设计模式还解释了设计的意图,权衡和后果.
设计模式是比框架更小的架构元素.典型的框架包含几种设计模式,但反之亦然.
设计模式不如框架专业化.框架始终具有特定的应用程序域.可以在工厂模拟中使用图形编辑器框架,但不会将其误认为是模拟框架.相比之下,本目录中的设计模式几乎可用于任何类型的应用程序.虽然比我们更专业的设计模式当然是可能的(比如分布式系统或并发编程的设计模式),但即使这些也不会像框架那样规定应用程序架构.
从对象取向软件开发使用Java由邓小平佳:
尽管设计模式和框架都是用于实现可重用设计的机制,但它们是完全不同的。一方面,设计模式是对可重用设计的示意性描述,这些设计不是具体的程序并且与语言无关。另一方面,框架是用特定编程语言编写的可编译程序,通常包含抽象类和接口。设计模式是框架的架构构建块。它们有助于使框架可扩展和可重用。框架通常包含许多协作设计模式的实现。
模式支持软件体系结构和设计的重用 -模式捕获静态和动态结构以及成功解决特定领域中构建应用程序时出现问题的解决方案的协作
框架支持细节设计和代码的重用 -框架是组件的集成集,这些组件协作以为一系列相关应用程序提供可重用的体系结构
设计模式和框架一起有助于提高软件质量并减少开发时间。