• 一个目标:管理变化,提高复用
  • 两种手段:分解,抽象
  • 八大原则
  • 所有模式UML图的类名改为A, B ...,方法名改为F1(), F2()...
  • 三种模型
  • 继承和组合对象的内存模型一样
  • 组合对象缺乏变化,组合指针具备灵活性
  • 设计模式中多用组合指针(指针指向多态对象,表达灵活性,可用B1, B2...等子类替换B)

[设计模式] 设计模式课程(二十三)--总结_多态

  • 关注稳定点和变化点
  • 一个模式的缺点就是它的稳定点
  • 没有稳定点,就无法用模式;没有变化点,就没必要用模式
  • 一个正常的软件,总是既有变化又有稳定

[设计模式] 设计模式课程(二十三)--总结_多态_02

 

  • 什么时候不用模式
  • 代码可读性很差时
  • 需求理解还很浅时(软件的第一版)
  • 变化没有显现时
  • 不是系统的关键依赖点时(关键点优先用)
  • 项目没有复用价值时(外包软件)
  • 项目将要发布时(重构有代价)
  • 经验
  • 不要为模式而模式
  • 关注抽象类 & 接口
  • 理清变化点和稳定点
  • 审视依赖关系
  • 要有Framework和Application的区隔思维(开车和造车)
  • 良好设计是演化的结果
  • 成长之路
  • 手中无剑,心中无剑:见模式而不知
  • 手中有剑,心中无剑:可以识别模式,作为开发人员使用模式(的扩展点)
  • 手中有剑,心中有剑:作为框架开发人员为应用设计某些模式
  • 手中无剑,心中有剑:忘掉模式,只有原则