GOF角度模式分类
- 创建型(Creational)模式:将对象的部分创建工作延迟到子
类或者其他对象,从而应对需求变化为对象创建时具体类型实
现引来的冲击
- 结构型(Structural)模式:通过类继承或者对象组合获得更灵
活的结构,从而应对需求变化为对象的结构带来的冲击
- 行为型(Behavioral)模式:通过类继承或者对象组合来划分
类与对象间的职责,从而应对需求变化为多个交互的对象带来
的冲击
从封装变化角度对模式分类
- 组建协助:
- Template Method
- Observer / Event
- Strategy
- 单一职责:
- 对象创建:
- Factory Method
- Abstract Factory
- Prototype
- Builder
- 对象性能:
- 接口隔离:
- Façade
- Proxy
- Mediator
- Adapter
- 状态变化:
- 数据结构:
- Composite
- Iterator
- Chain of Resposibility
- 行为变化:
- 领域问题:
重构与设计模式
- 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对
象设计”指是那些可以满足 “应对变化,提高复用”的设计 。
- 现代软件设计的特征是“需求的频繁变化”。设计模式的要点是
“寻找变化点,然后在变化点处应用设计模式,从而来更好地应对
需求的变化”.“什么时候、什么地点应用设计模式”比“理解设
计模式结构本身”更为重要。
- 设计模式的应用不宜先入为主,一上来就使用设计模式是对设计
模式的最大误用。没有一步到位的设计模式。敏捷软件开发实践提
倡的“Refactoring to Patterns”是目前普遍公认的最好的使用设
计模式的方法。
- 静态->动态
早绑定->晚绑定
继承->组合
编译时依赖->运行时依赖
紧耦合->松耦合