设计模式-比具体模式更重要的准则

重构获得模式 Refactoring to Patterns

  • 面向对象设计模式是"好的面向对象设计",而好的设计指的是可以满足"应对变化",提高复用
  • 现代软件设计的特点是"需求的频繁变化",设计模式是在"寻找变化点",然后在变化点应用设计模式,从而更好地应对需求的变化.

什么时候,什么地点应用设计模式比"理解设计模式结构本身"更为重要.
除非非常有经验,否则设计模式都应该通过重构而来.

  • 设计模式不应该先入为主,一上来就是用设计模式就是对设计模式的最大误用.没有一步到位的设计模式.

敏捷开发实践倡导的是"Refactoring to Patterns".

相关书籍

  • 重构-改善既有代码的设计
  • 重构与模式

重构关键技法

比某些单纯的模式更加重要

  • 静态 -> 动态
  • 早绑定 -> 晚绑定
  • 继承 -> 组合
  • 编译时依赖 -> 运行时依赖
  • 紧耦合 -> 松耦合

面向对象设计原则

开闭原则

  • 对扩展开放,对更改封闭
  • 类模块应该是可扩展的,但是不可修改

单一职责原则

  • 一个类应该仅有一个引起它变化的原因
  • 变化的方向隐含类的责任

里氏代换原则

  • 子类必须能够替换他们的基类(IS-A)
  • 继承表达类型抽象

接口隔离原则

  • 不应该强迫客户程序依赖它们不用的方法
  • 接口应该小而完备

依赖倒置原则

  • 高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定).
  • 抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)

面向接口编程

  • 不将变量类型声明为某个特定的具体类,而是声明为某个接口
  • 客户程序无需获知对象的具体类型,只需要知道对象所具有的接口
  • 减少系统各个部分的依赖关系,从而实现"高内聚,低耦合"的类型设计方案

你可能感兴趣的:(设计模式-比具体模式更重要的准则)