zhangdizhangdi

设计原则

SOLID 原则

  • 单一职责原则 Single Responsibility Principle
  • 开放封闭原则 Open Closed Principle
  • 里氏替换原则 Liskov Substitution Principle
  • 接口隔离原则 Interface Segregation Principle
  • 依赖倒置原则 Dependence Inversion Principle

另外两个原则

  • 迪米特法则 Law of Demeter 或叫 最少知识原则 Least Knowledge Principle
  • 合成/聚合复用原则 Composite/Aggregate Reuse Principle

单一职责原则(SRP) :star:

一个对象(方法)只做一件事情。

应用:代理模式、迭代器模式、单例模式、装饰器模式

开放封闭原则(OCP) :star:

可以扩展的,但不可以修改。

应用:发布订阅模式、模板方法模式、策略模式、代理模式、职责链模式

迪米特法则(LoD):star:

一个软件实体应当尽可能少地与其他实体发生相互作用。

应用:中介者模式、外观模式

里氏替换原则(LSP)

子类能覆盖父类,父类能出现的地方子类就能出现。

接口隔离原则(ISP)

保持接口的单一独立,避免出现“胖接口”。

依赖倒置原则(DIP)

面向接口编程,依赖于抽象而不依赖于具体,使用方法只关注接口而不关注具体类的实现

代码重构

  1. 提炼函数
  2. 合并重复的条件片段
  3. 把条件分支语句提炼成函数
  4. 合理使用循环
  5. 提前让函数退出代替嵌套条件分支
  6. 传递对象参数代替过长的参数列表
  7. 尽量减少参数数量
  8. 少用三目运算符
  9. 合理使用链式调用
  10. 分解大型类
  11. 用 return 退出多重循环

参考