创建型
- 单例(singleton):确保有且只有一个对象被创建。
- 工厂方法(factory method):由子类决定要创建的具体类是哪一个。
- 抽象工厂(abstract factory):允许客户创建对象的家族,而无需指定他们的具体类。
- 建造者(builder):
-
结构型
装饰者(decorator):包装一个对象,以提供新的行为。
- 代理(proxy):包装对象,以控制对此对象的访问。
- 外观(facade):简化一群类的接口。
- 组合(composite):客户用一致的方式处理对象集合和单个对象。
- 适配器(adapter):封装对象,并提供不同的接口。
- 蝇量(flyweight):
-
行为型
模板方法(template method):由子类决定如何实现一个算法中的步骤。
- 命令(command):封装请求成为对象。
- 迭代器(iterator):在对象的集合之中游走,而不暴露集合的实现。
- 观察者(observer):让对象能够在状态改变时被通知。
- 状态(state):封装了基于状态的行为,并使用委托在行为之间切换。
- 策略(strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。
- 中介者(mediator):
- 访问者(visitor):
- 备忘录(memento):
- 解释器(interpreter):
- 责任链(chain of responsibility):