模式分类
GOF23模式分类
从目的来分:
创建型(Creational)模式:
将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击
结构型(Structural)模式:
通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击
行为型(Behavioral)模式:
通过类继承或者对象组合来划分类与对象的职责,从而应对需求变化为多个交互的对象带来的冲击
从范围来分:
类模式处理类与子类的静态关系
对象模式处理对象间的动态关系
从封装变化角度对模式分类
组件协作:
现代软件专业分工之后的第一个结构是"框架与应用程序的划分","组件协作"模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是是二者之间协作时常用的模式
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 Responsibility
行为变化:
Command
Visitor
领域问题:
Interpreter
重构获得模式Refactoring to Patterns
面向对象设计模式是"好的面向对象设计"指可以满足"应对变化,提高复用"的设计
现代软件设计的特征是"需求的频繁变化"设计模式的要点是"寻求变化点"
在变化点点处应用设计模式,从而来更好的应对需求的变化","什么时候,什么地点应用设计模式"比"理解设计模式结构本身"更为重要
设计模式的应用不宜先入为主,一上来就使用设计模式,对设计模式的最大误用
没有一步到位的设计模式敏捷软件开发实践所提倡的"Refactoring to Patterns"是目前普遍公认的最好的使用设计模式的方法
重构的技法
静态 -> 动态
早绑定 -> 晚绑定
继承 -> 组合
编译时依赖 -> 运行时依赖
紧耦合 -> 松耦合
如有错误,可评论指出,谢谢。