一、单一职责原则(SRP)
避免相同的职责分散到不同的类中
避免一个类承担太多的职责
遵守SRP有以下好处:
减少类之间的耦合,当需求发生变化的时候,只要修改一个类就可以隔离变化。
提高类的复用性。

二、接口隔离原则(ISP)
一个类对另一个类的依赖性应当是建立在最小的接口上的。
客户端不应该被强迫实现他们不会使用的接口。
降低客户之间的影响,A的需求变化不会影响B
接口隔离实际就是定制化服务设计的原则,达到按需提供服务。

三、开放-封闭原则
开:模块的行为必须是开放的、可扩展的
闭:在对模块进行扩展时,不应该影响或大规模影响已有的模块。
开闭原则就是一个模块在扩展性方面应该是开放的,而在更改性方面是封闭的。

四、替换原则
子类必须能替换掉他们的父类,并能出现在任何父类出现的地方。

五、依赖倒置原则
上层模块不该依赖于下层模块,父类不能依赖子类
抽象不能依赖具体,具体应该要依赖抽象