设计模式记录了面向对象软件的设计经验,使人们可以更简单方便地复用成功的设计和体系结构。
“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。”
- 目的分类准则:创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。
- 范围分类准则:指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时便确定下来。对象模式处理对象间的关系,这些关系在运行时是可以变化的,更具有动态性。从某种意义上说,几乎所有模式都使用继承机制,所以“类模式”只指那些集中于处理类间关系的模式,而大部分模式都属于对象模式的范畴。
创建型 | 结构型 | 行为型 | |
---|---|---|---|
类 | C 工厂方法 | S 适配器(类) | B 解释器 B 模板方法 |
对象 | C 抽象工厂 C 生成器 C 原型 C 单件 |
S 适配器(对象) S 桥接 S 组合 S 装饰 S 外观 S 享元 S 代理 |
B 职责链 B 命令 B 迭代器 B 中介者 B 备忘录 B 观察者 B 状态 B 策略 B 访问者 |
- 创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中;
- 结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式;
- 行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象所无法完成的任务。
面向对象的设计原则:
- 针对接口编程,而不是针对实现编程;
- 优先使用对象组合,而不是类继承。
下载参考卡片 qrc0001-design-patterns.pdf
图书推荐