C++设计模式之一(设计模式分类)
GOF对设计模式分类如下:
从目的来看
创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击
- Factory Method(工厂方法)
- Abstract Factory(抽象工厂)
- Builder(建造者)
- Prototype(原型)
- Singleton(单例)
结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击
- Adapter Class/Object(适配器)
- Bridge(桥接)
- Composite(组合)
- Decorator(装饰)
- Facade(外观)
- Flyweight(享元)
- Proxy(代理)
行为型(Behavioral)模式:通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击
- Interpreter(解释器)
- Template Method(模板方法)
- Chain of Responsibility(责任链)
- Command(命令)
- Iterator(迭代器)
- Mediator(中介者)
- Memento(备忘录)
- Observer(观察者)
- State(状态)
- Strategy(策略)
- Visitor(访问者)
从范围来看:
• 类模式处理类与子类的静态关系。
• 对象模式处理对象间的动态关系。
另一种分类方法: 从封装变化角度对模式分类
组件协作:
• Template Method
• Observer / Event
• Strategy
单一职责:
• Decorator
• Bridge
对象创建:
• Factory Method
• Abstract Factory
• Prototype
• Builder
对象性能:
• Singleton
• Flyweight
接口隔离:
• Façade
• Proxy
• Mediator
• Adapter
状态变化:
• Memento
• State
数据结构:
• Composite
• Iterator
• Chain of
Resposibility
行为变化:
• Command
• Visitor
领域问题:
• Interpreter
设计模式关系图:
部分引用:http://blog.****.net/zhangcanyan/article/details/51778828