一般来讲,模式包含四个必要的元素
第一个元素:模式的名称
用几个单词,简明扼要的表达该模式要解决的设计问题,以及他的解决方案和重要性。
第二个元素:要解决的问题
描述我们什么时候使用该模式,以及他能解决的问题。
第三个元素:解决问题的方案
描述组成该模式的各种组成元素,以及他们之间的协作方式和关系,还有元素自己的任务。
第四个元素:模式的结果
用来评估应用该模式时的利弊
设计模式的应用范围
设计模式可以从两个角度去考虑,一个是设计模式的目的,另一个是适用对象或者范围。
1、目的(Purpose)可以分为三类:一,创建对象时使用的模式;二,组织对象的结构时使用的模式;三,设计对象的行为时的模式
2、适用对象或者范围(Scope),分为两种,一种是类(Class),另一种是对象(Object)
见下表的总结
# | 目的 | |||
---|---|---|---|---|
创建对象时使用的模式(Creational) | 对象的组织结构(Structural) | 行为(Behavioral) | ||
作用对象 | 类(Class) | 工厂方法(Factory Method) | 适配器(Adapter(class)) | 解释器(Interpreter), 模板方法(Template Method) |
对象(Object) | 抽象工厂(Abstract Factory) 创建者(Builder) 原型(Prototype) 单例(Singleton) | 适配器(Adapter(Object)) 桥(Bridge) 组件(Composite) 装饰(Decorator) 外观(Facade) 轻量化(Flyweight) 代理(Proxy) | 责任链表(Chain of Responsibility) 命令(Command) 迭代器(Iterator) (Mediator) 意图(Memento) 观察者Observer 状态(State) 策略(Strategy) 访问者(Visitor) |