开闭原则、单一职责原则、里氏替换原则、依赖倒转原则、接口隔离原则、迪米特法则(最小知识法则)和合成复用原则。

总原则:开闭原则

对扩展开放,对修改关闭。这对模块、类或方法都生效,是为了让程序扩展性更强,更容易维护和升级。要做到这一点,需要使用接口或抽象类来实现,具体实现的原则还要按照以下六大原则。

1. 单一职责原则

对一个类来说,应该尽可能只有一个职责,即只有一个影响他变化的原因。 如果类承担职责过多,在后期维护和修改时会有很多麻烦。

2. 里氏替换原则

子类必须能够替换父类。意思是说只有当所有的子类都能够替换父类时,父类的功能才是通用的。该原则要求所有的子类的代码都完整实现了父类的逻辑(重用或重写),这样在使用是就可以使用父类或者接口的方法了。

3. 依赖倒转原则

面向接口编程,要求依赖接口,而不是实现类。这样在实现类修改的时候,不会对调用方有影响。

4. 接口隔离原则

接口中不能存在实现类用不到的方法,如果有,需要拆分到另一个接口。使用多个隔离的接口比单个接口的职责更清晰。

5. 迪米特法则(最小知识法则)

首先一个类应该把复杂的逻辑放在自己内部,只通过public方法暴露必须暴露的方法;
其次,如果两个类不必直接通信,那么两个类不应该发生直接的相互作用,这强调了类之间的松耦合。耦合越低,复用性越好。

6. 合成复用原则

尽量首先使用组合、聚合的方式,而不是使用继承。