繁体   English   中英

Liskov 替换原则

[英]The Liskov substitution principle

我正在阅读 Chetan Giridhar 写的“学习 Python 设计模式”一书,我遇到了一个称为 Liskov 替换原则的设计原则,它指出派生类必须能够完全替换基(父)类。

我不认为我理解这一点,因为如果派生类可以完全取代基类,那么编写派生类有什么意义? 它不会使基类变得多余吗?

根据我的理解和经验,派生类扩展了基类的功能,因此应该依赖于基类。

作者试图帮助我理解什么?

Derived类应该在不替换旧类functionality的情况下进行扩展。 这意味着派生类应该可以替代它们的parent/baseparent/base类。 此外,它们可以代替其父类使用而不会出现任何意外行为。

我们无法替换parent class's功能,但我们可以在子类中re-write它,并在修改时extend该子类。 通过更改父类,它将使我们远离复杂软件中可能发生的chain reaction ,因此我们选择在子类中duplicate它,然后write我们想要的modifications

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM