1 开闭原则
对扩展开放,对修改关闭。
2 依赖倒置原则
业务代码持有顶层抽象(依赖接口,而不直接依赖具体实现),后续根据业务场景注入具体实现类,方便扩展与维护。
3 单一职责原则
每个接口、类、方法只承担一种业务职能。降低类的复杂度,提高可维护性以及便于后期扩展。
4 接口隔离原则
每种功能用专门的接口定义,不在一个接口中定义太多行为。子类实现需要什么行为时,可以implement多个需要的行为接口。
5 迪米特原则(最小知道原则)
每个类的全局属性、方法传参等属于最小知道范围,其余方法内传递或新增的对象等属于耦合对象,要尽量降低耦合和依赖,不要新增太多耦合依赖对象。
6 里氏替换原则
子类实现的传参A,替换成传参B后,结果不会改变,则B是A的子类,这种行为符合里氏替换原则,可以避免后续继承泛滥等问题。
子类不能覆盖父类非抽象方法,可以新增自己的方法进行扩展。这样可以避免后续该方法职能泛滥问题。
子类实现的父类方法的返回值应该比父类方法的返回值更严格或者一样。
7 合成复用原则
尽量使用组合/聚合等方式持有对象,避免使用继承。减轻类与类内部功能的耦合性,只需要知道对象就可以了。一般定义对象接口,后期根据业务场景注入具体实现的对象,调用使用它的方法,降低具体业务逻辑与实际实现的耦合。