七大基本原则
单一职责原则
- 一种类只能具有一种职责,降低类的复杂度。
- 提高类的可读性,可维护性。
- 降低变更引起的风险。
- 在类中的方法比较少的时候,可以在方法级别保持单一职责原则。其他情况下,都要保持类的类单一职责原则。
接口隔离原则
- 客户端不应该依赖它不需要的接口。
- 一个类对另一个类的依赖应该建立在最小的接口上。
依赖倒置原则
- 依赖倒置原则的中心思想是面向接口编程。
- 抽象不应该依赖细节,细节应该依赖抽象。抽象是接口或者抽象类,细节即为实现类。
- 对于细节的多变性,抽象的东西要稳定的多。
里氏替换原则
- 继承遵守里氏替换原则,子类尽量不要重写父类的方法。如果子类重写了父类的方法,实际上是增加了子类和父类之间的耦合度。
- 在引用父类的地方能直接使用其子类替换。
- 若子类需要修改父类的方法,可以通过组合、聚合、依赖等方法实现。
开闭原则
- 对扩展开放。
- 对修改关闭。
迪米特法则
- 最少知道原则。一个类对自己依赖的类知道越少越好。
- 直接朋友。一个类作为成员变量、方法参数、方法返回值出现在另一个类。称该类为另一个类的直接朋友。
- 减少非直接朋友的耦合。不要以局部变量的形式出现在其他类。
合成复用法则(组合/聚合复用原则)
- 在复用情况时,尽量使用组合和聚合的方式,减少继承的使用。
- 若使用继承,则必须严格遵守里式替换原则。
- 组合关系。另一个类随着当前类创建和销毁。 例如人和手的关系就是组合关系。
- 聚合关系。另一个类包含在当前类中,但另一个类不是当前类的组成部分,另一个类不会因为当前类的创建和销毁而去创建和销毁。 例如人和电脑的关系就是聚合关系。