[英]The Liskov substitution principle
我正在阅读 Chetan Giridhar 写的“学习 Python 设计模式”一书,我遇到了一个称为 Liskov 替换原则的设计原则,它指出派生类必须能够完全替换基(父)类。
我不认为我理解这一点,因为如果派生类可以完全取代基类,那么编写派生类有什么意义? 它不会使基类变得多余吗?
根据我的理解和经验,派生类扩展了基类的功能,因此应该依赖于基类。
作者试图帮助我理解什么?
Derived
类应该在不替换旧类functionality
的情况下进行扩展。 这意味着派生类应该可以替代它们的parent/base
类parent/base
类。 此外,它们可以代替其父类使用而不会出现任何意外行为。
我们无法替换parent class's
功能,但我们可以在子类中re-write
它,并在修改时extend
该子类。 通过更改父类,它将使我们远离复杂软件中可能发生的chain reaction
,因此我们选择在子类中duplicate
它,然后write
我们想要的modifications
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.