面向对象程序设计圣经:SOLID设计原则
- Single Responsibility Principle 单一职责
- Open-Closed Principle 开闭原则
- Liskov Substitution Principle 里氏替换原则
- Interface Segregation Principle 接口分离原则
- Dependency Inversion Principle 依赖倒置原则
遵循SOLID设计原则可以保证代码的低耦合和高内聚,统一团队理念,使代码稳定、灵活、健壮。
Single Responsibility Principle 单一职责
一个类只做单一的一种功能。
职责过多使代码难以复用和维护。
Open-Closed Principle 开闭原则
对扩展开放,对修改关闭。
要么继承,要么注入,不轻易修改已经写好的类。
- 继承拓展:通过新建子类继承父类,改写方法
- 优点:实现简单、直观
- 缺点:改写父类方法,容易违背里氏替换原则
- 构造拓展:新建其他功能实现类进行注入
- 原则:基类不直接实现具体细节,细节由构造注入决定
Liskov Substitution Principle 里氏替换原则
子类可以替换父类,并且替换后系统结果一致。
两个基本要求:
- 输入输出一致,继承的方法一律不变,有特殊需求另起一个方法实现
- 子类不产生副作用
Law of Demeter 迪米特法则
目的在于降低类之间的耦合。由于每个对象之间尽量减少对其他类的了解,容易使得系统之间的功能模块独立,相互之间不存在或很少有依赖关系。
Interface Segregation Principle 接口分离原则
接口实现方不应该被迫实现用不上的方法。
单个接口的方法数尽可能少。
Dependency Inversion Principle 依赖倒置原则
高阶模块不应该依赖缔结模块,两者应该都依赖于抽象。
抽象不依赖于细节,而细节应该依赖于抽象。
具体体现在:
- 不要在一个类里面new另一个类,而是应该注入使用。
- 注入时应该用接口约束参数,而不是类约束参数。