设计模式概述
模式分类
我们根据两条准则对模式进行分类:
- 目的准则:即模式是用来完成什么工作的。a)创建型模式与对象的创建有关;b)结构型模式处理类或对象的组合;c)行为型模式对类或对象怎样交互和怎样分配职责进行描述;
- 范围准则:指定模式主要是用于类还是对象。a)类模式处理类与子类之间的关系,这些关系通过继承建立,是静态的,在编译时便确定下来了;b)对象模式处理对象之间的关系,这些关系在运行时是可变化的;
创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中;结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式;行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务。
目的 | ||||
创建型 | 结构型 | 行为型 | ||
范围 | 类 | 工厂方法Factory Method | 适配器Adapter |
解释器Interpreter 模版方法Template Method |
对象 |
抽象工厂Abstract Factory 建造者Builder 原型Prototype 单例Singleton |
适配器Adapter 桥接Bridge 组合Composite 装饰器Decorator 外观Facade 享元Fly weight 代理Proxy |
责任链Chain of Responsibility 命令Command 迭代器Iterator 中介者Mediator 备忘录Memento 观察者Observer 状态State 策略Strategy 访问者Visitor |
参考
- 《设计模式-可复用面向对象软件的基础》