1. 模式(pattern)就是做事的一种方法,也即实现某个目标的途径,或者技术。设计模式是面向对象语言中利用类和方法来实现某个编程目标的方法,因而设计模式也是一种模式。模式是一种思想,而不是具体细节。
2. 模式的设计意图是设计模式最重要的方面之一,它指出了应用一个模式的价值所在。设计模式的意图旨在解决某类需求,而Java提供的常规机制是无法满足这些需求的。例如,Java为定义一个接口提供了丰富的支持,以便类能够实现接口。但是,如果我们有一个含有“错误”接口的类,并需要设法让它满足用户的要求,那么就要使用Adapter模式。Adapter模式的设计意图是普通Java接口机制所无法满足的。
3. 可以根据设计意图将23种设计模式分为以下五类:
(1) 接口型设计模式(Interface pattern);
(2) 责任型设计模式(Responsibility pattern);
(3) 构造型设计模式(Construction pattern);
(4) 操作型设计模式(Operations pattern);
(5) 扩展型设计模式(Extensions pattern);
当然,根据设计意图对设计模式进行分类,并不意味着每种设计模式只支持一种设计意图。有些设计模式本身能够满足多种设计意图。
4. 根据设计意图对模式的分类:
接口型模式: Adapter(适配器)模式,Facade(外观)模式,Composite(组合)模式,Bridge(桥接)模式
责任型模式:Singleton(单例)模式,Observer(观察者)模式,Mediator(中介者)模式,Proxy(代理)模式,Chain of Responsibility(责任链模式),Flyweight(享元)模式
构造型模式:Builder(生成器)模式,Factory Method(工厂方法)模式,Abstract Factory(抽象工厂)模式,ProtoType(原型)模式,Memento(备忘录)模式
操作型模式:Template Method(模板方法)模式,State(状态)模式,Stratege(策略)模式,Command(命令)模式,Intepretor(解释器)模式
扩展型模式:Decorator(装饰器)模式,Iterator(迭代器)模式,Visitor(访问者)模式