设计模式
表- 设计模式空间
创建型 | 结构型 | 行为型 | ||
范围 | 类 | Factory Method | Adapter | Interprepter Template Method |
对象 | Abstract Factory Builder Prototype Singleton | Adapter Bridge Composite Decroator Facade FlyWeight Proxy | Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor |
1、类继承和接口继承的
2、对接口编程,而不是对实现编程
3、运用复用机制: 优先使用对象组合(黑箱复用 black-box reuse),
而不是类继承(白箱复用 white-box reuse), 只基层抽象抽象类
4、委托: 组合的一种特例
5、继承和参数化类型的比较
6、聚合(aggregation)和相识(acquaintance):
聚合:一个对象拥有(包含)另外一个对象或对另外一个对象负责
相识:一个对象仅仅知道另一个对象 (关联或引用)
表- 设计模式所支持的设计的可变方面
目的 | 设计模式 | 可变的方面 |
创建 | Abstract Factory | 产品对象家族 |
结构 | Adapter Bridge Composite Decorator Facade Flyweight Proxy | 对象的接口 对象的实现 一个对象的结构和组成 对象的职责,不生成子类 一个子系统的接口 对象的存储开心 如何访问一个对象,该对象的位置 |
Chain of Responsibility Command Interprete Iterator Mediator Memento Observer State Strategy Template Method Visitor | 满足一个请求的对象 何时、怎样满足一个请求 一个语言的文法及解释 如何遍历、访问一个聚合的个元素 对象间如何交互,和谁交互 一个对象中哪些私有信息存放在该对象之外,以及在什么 时候进行存储 对个对象依赖与一个对象,而这些对象又如何保持一致 对象的状态 算法 算法中某些步骤 某些可作用于一个(组)对象上的操作,但不修改这些对象的类 |
本来无一物,何处染尘埃。