5 Design in Construction

5.3 Design Building Blocks: Heuristics

Look for Common Desgin Patterns

常见的设计模式 | 模式 | 描述 | | —- | —- | | Abstract Factory (抽象工厂) | 通过指定对象组的种类而非单个对象的类型来支持创建一组相关的对象 | | Adapter (适配器) | 把一个类的接口转变成为另一个接口 | | Bridge (桥接) | 把接口和实现分离开来,使它们可以独立地变化 | | Composite (组合) | 创建一个包含其他同类对象的对象,使得客户代码可以与最上层对象交互而无须考虑所有的细节对象 | | Decrorator (装饰器) | 给一个对象动态地添加职责,而无须为了每一种可能的职责配置情况去创建特定的子类( 派生类 ) | | Facade (外观) | 为没有提供一致接口的代码提供一个一致的接口 | | Factory Method | 做特定基类的派生类的实例化时,除了在 Factory Method内部之外均无须了解各派生对象的具体类型 | | Iterator (迭代器) | 提供一个服务对象来顺序地访问一组元素中的各个元素 | | Observer (观察者) | 使一组相关对象相互同步,方法是让另一个对象负责:在这组对象中的任何一个发生改变时,由它把这种变化通知给这个组里的所有对象 | | Singleton (单件) | 为有且仅有一个实例的类提供一种全局访问功能 | | Strategy (策略) | 定义一组算法或者行为,使得它们可以动态地相互替换 | | Template (模板方法) | 定义一个操作的算法结构,但是把部分实现的细节留给子类( 派生类 ) |

6. Working Classes

7. High-Quality Routines