目录

设计模式六大原则之里氏原则

李羽秋
李羽秋 2022年01月30日  ·  阅读 1,403

设计模式六大原则之里氏原则

1.定义

所有引用基类(父类)的地方必须能透明地使用其子类的对象。通俗的说,子类可以扩展父类功能,

但不能改变父类原有功能。

2.继承

2.1 优点

  • 提高代码的重用性,子类拥有父类的方法和属性
  • 提高代码的可扩展性,子类可形式于父类,但异于父类,保留自我的特性

2.2 缺点

  • 继承是侵入性的,只要继承就必须拥有父类的所有方法和属性,在一定程度上约束了子类,降低了代码的灵活性
  • 增加了耦合,当父类的常量、变量或者方法被修改了,需要考虑子类的修改,所以一旦父类有了变动,很可能造成

非常糟糕的结果,要重构大量的代码

3. 里氏替换原则的必要性

因为继承带来的侵入性,增加了耦合性,也降低了代码的灵活性,父类修改了代码,子类也会受到影响,此时就需要里氏替换原则

  • 子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法
  • 子类中可以增加自己特有的方法
  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格
分类: 设计模式
标签: