设计原则_里氏替换原则

版权声明:做一个有尊严的生产者 https://blog.csdn.net/qq_36918149/article/details/82317730

一、理解
里氏替换原则(Liskov Substitution Principe ,LSP),只要父类能出现的地方子类就可以出现,而且替换为子类以后不会产生任何的错误或异常,使用者可能根本不需要知道是父类还是子类。但是反过来不行,有子类出现的地方,父类未必类适应。
里氏替换原则为良好的继承定义了一个规范,4层含义。

  • 子类必须完全实现父类的方法,在类中调用其他类时务必要使用父类或接口
  • 子类可以有自己的个性,有子类出现的地方未必父类可以出现。
  • 覆盖或实现父类方法时输入参数可以被放大,子类的输入参数条件相同或更宽松。
  • 覆写或实现父类方法时输出结果可以被缩小。

二、优势
LSP的目的就是增加程序的健壮性,版本升级的时候可以保持非常好的兼容性,及时增加子类,以前的子类也可以继续运行,每个子类对应的不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑,非常完美。
三、劣势
在项目中, 采用 里氏替换原则时,尽量避免子类的“个性化”,一旦子类有“个性”,这个子类和父类之间的关系就很难调和,把子类当成父类使用,子类的“个性”被抹杀–委屈了点。把子类单独作为一个业务来使用,则会让代码间的耦合关系变得扑朔迷离–缺乏类替换的标准。

四、应用
这是一种继承的规范, 在日常项目中都适用。

猜你喜欢

转载自blog.csdn.net/qq_36918149/article/details/82317730