设计模式六大原则之里氏原则
李羽秋
2022年01月30日 · 阅读 1,403
设计模式六大原则之里氏原则
1.定义
所有引用基类(父类)的地方必须能透明地使用其子类的对象。通俗的说,子类可以扩展父类功能,
但不能改变父类原有功能。
2.继承
2.1 优点
- 提高代码的重用性,子类拥有父类的方法和属性
- 提高代码的可扩展性,子类可形式于父类,但异于父类,保留自我的特性
2.2 缺点
- 继承是侵入性的,只要继承就必须拥有父类的所有方法和属性,在一定程度上约束了子类,降低了代码的灵活性
- 增加了耦合,当父类的常量、变量或者方法被修改了,需要考虑子类的修改,所以一旦父类有了变动,很可能造成
非常糟糕的结果,要重构大量的代码
3. 里氏替换原则的必要性
因为继承带来的侵入性,增加了耦合性,也降低了代码的灵活性,父类修改了代码,子类也会受到影响,此时就需要里氏替换原则
- 子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法
- 子类中可以增加自己特有的方法
- 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格
分类:
设计模式
标签:
无