目录

分类

模式分类

从目的来看

  1. 创建型模式
    • 将对象的部分创建工作延后到子类或者其他对象,从而应对需求变化为对象创建时带来的冲击
  2. 结构型模式
    • 通过类继承或者对象组合获得灵活的结构,从而应对需求变化为对象的结构带来冲击
  3. 行为型模式
    • 通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击

从范围来看

  1. 类模式处理类与子类的静态关系
  2. 对象模式处理对象间的动态关系

从封装变化角度来看

  1. 组件协作
    • Template Method
    • Observer / Event
    • Strategy
  2. 单一职责
    • Decorator
    • Bridge
  3. 对象创建
    • Factory Method
    • Abstract Factory
    • Prototype
    • Builder
  4. 对象性能
    • Singleton
    • Flyweight
  5. 接口隔离
    • Façade
    • Proxy
    • Mediator
    • Adapter
  6. 状态变化
    • Memento
    • State
  7. 数据结构
    • Composite
    • Iterator
    • Chain of Resposibility
  8. 行为变化
    • Command
    • Visitor
  9. 领域问题
    • Interpreter

重构获得模式

重构获得模式

  1. 怎么去看待设计模式
    • 面向对象模式是 “好的面向对象设计”,所谓好的面向对象设计就是指那些可以满足 应对变化,提高复用性
    • 现代软件设计的特征就是 需求的频繁变化,所以设计模式重点在于 寻求变化点,然后在变化点应用设计模式,从而来更好的应对需求的变化
    • 所以说,什么时候,什么地点应用设计模式比理解设计模式结构本身更为重要!!!
    • 同时,设计模式的应用不宜先入为主,一上来就是用设计模式,这是最大的错误,而且也没有一步到位的设计模式让你去使用
    • 重构与模式 很重要!!! 还有脚踏实地!!!

重构关键方法

  1. 静态 -> 动态
  2. 早绑定 -> 晚绑定
  3. 继承 -> 组合
  4. 编译时依赖 -> 运行时依赖
  5. 紧耦合 -> 松耦合