LSP——Liskov 替换原则
定义:子类型必须能够替换掉他们的基类型
理解:就是别乱七八糟加啥奇奇怪怪的方法,你只是改变某种行为的方式,但是他还得符合那种行为的基本框架。如果不是IS-A关系,就坚决不用继承。
DIP 依赖倒置
解释:高层模块不应该依赖于底层模块。二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该以来与抽象。
理解:就是高层代码不能因为低层代码的改变而改变自己的行为。只有高层说,我要改变这个行为,低层才能改变。不能本末倒置
实现:让高层拥有低层抽象出来的一个接口,低层依照这个接口去实现方法。如果高层的需求变了,那么就需要先改变这个接口,在改变低层的类。这样,就是高层拥有低层,而不是低层影响高层。
ISP 接口隔离原则:
总之就是一句话,接口内部需要内聚,不要那么胖