一、设计模式的要点
寻找变化点,然后在变化点处应用设计模式,从而来更好地应对需求的变化。
二、重构关键技法
- 静态->动态
- 早绑定->晚绑定
- 继承->组合
- 编译时依赖->运行时依赖
- 紧耦合->松耦合
三、模式分类
1.从目的来看
- 创建型(Creational)模式:5种
工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 - 结构型(Structural)模式:7种
适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 - 行为型(Behavioral)模式:11种
策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
2.从范围(实现手段)来看
- 类模式处理类与子类的静态关系。(偏继承方案)
- 对象模式处理对象间的动态关系。(偏组合方案)
3.从封装变化角度来看
- 组件协作(通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者间协作时常用的模式)
- Template Method
- Strategy
- Observer / Event
- 单一职责(类与类之间的责任划分问题)
- Decorator
- Bridge
- 对象创建
- Factory Method
- Abstract Factory
- Prototype
- Builder
- 对象性能:
- Singleton
- Flyweight
- 接口隔离
- Facade
- Proxy
- Mediator
- Adapter
- 状态变化
- Memento
- State
- 数据结构
- Composite
- Iterator
- Chain of Resposibility
- 行为变化
- Command
- Visitor
- 领域问题
- Interpreter