13.与设计模式相处
创建型模式涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
创建型:
- Singleton
- Builder
- Prototype
- Abstract Factory
- Factory Method
只要是行为型模式,都涉及到类和对象如何交互和分配职责。
行为类:
- Mediator
- Visitor
- Template Method
- Iterator
- Command
- Memento
- Interpreter
- Observer
- Chain of Responsibility
- State
- Strategy
结构型模式可以让你把类或对象组合到更大的结构中。
结构型:
- Decorator
- Proxy
- Facade
- Composite
- Flyweight
- Bridge
- Adapter
类模式描述类之间的关系如何通过继承定义。类模式的关系是在编译时建立的。
类模式:
- Template Method
- Factory Method
- Adapter
- Interpreter
对象模式描述对象之间的关系,而且主要是利用组合定义。对象模式的关系通常在运行时建立,而且更加动态、更有弹性。
对象模式:
- Composite
- Visitor
- Decorator
- Proxy
- Strategy
- Bridge
- Flyweight
- Iterator
- Command
- Memento
- Facade
- Observer
- Chain of Responsibility
- Mediator
- Prototype
- State
- Abstract Factory
- Builder
- Singleton
一句话概括模式:
- 装饰者:包装一个对象,以提供新的行为。
- 迭代器:在对象的集合之中游走,而不暴露集合的实现。
- 状态:封装了基于状态的行为,并使用委托在行为之间切换。
- 外观:简化一群类的接口
- 策略:封装可以互换的行为,并使用委托来决定要使用哪一个。
- 代理:包装对象,以控制对此对象的访问。
- 工厂方法:由子类决定要创建的具体类是哪一个。
- 适配器:封装对象,并提供不同的接口。
- 观察者:让对象能够在状态改变时被通知。
- 模板方法:由子类决定如何实现一个算法中的步骤。
- 组合:客户用一致的方式处理对象集合和单个对象。
- 单件:确保有且只有一个对象被创建。
- 抽象工厂:运行客户创建对象的家族,而无需指定它们的具体类。
- 命令:封装请求成为对象。