设计原则
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) ⭐
一个对象(方法)只做一件事情。
应用:代理模式、迭代器模式、单例模式、装饰器模式
开放封闭原则(OCP) ⭐
可以扩展的,但不可以修改。
应用:发布订阅模式、模板方法模式、策略模式、代理模式、职责链模式
迪米特法则(LoD)⭐
一个软件实体应当尽可能少地与其他实体发生相互作用。
应用:中介者模式、外观模式
里氏替换原则(LSP)
子类能覆盖父类,父类能出现的地方子类就能出现。
接口隔离原则(ISP)
保持接口的单一独立,避免出现“胖接口”。
依赖倒置原则(DIP)
面向接口编程,依赖于抽象而不依赖于具体,使用方法只关注接口而不关注具体类的实现
代码重构
- 提炼函数
- 合并重复的条件片段
- 把条件分支语句提炼成函数
- 合理使用循环
- 提前让函数退出代替嵌套条件分支
- 传递对象参数代替过长的参数列表
- 尽量减少参数数量
- 少用三目运算符
- 合理使用链式调用
- 分解大型类
- 用 return 退出多重循环