我正在阅读Chetan Giridhar写的《学习Python设计模式》这本书 我碰到了一种叫做替代原理的设计原则 派生类必须能够完全替代基类(父类)。
我不明白我的意思,因为编写派生类有什么意义 是否可以完全取代基类?难道不是基类多余了吗?
根据我的理解和经验,派生类扩展了基类的功能,因此应依赖于基类。
作者试图帮助我理解什么?
答案 0 :(得分:1)
Derived
类应该扩展而不替换旧类的functionality
。这意味着派生类应该可以代替其parent/base
类。而且,它们可以代替其父类使用而没有任何意外行为。
我们无法取代parent class's
功能,但可以在子类中re-write
对其进行extend
的修改。通过更改父类,它将使我们远离复杂软件中可能发生的chain reaction
,因此我们选择在子类中选择duplicate
,然后选择write
我们想要的modifications
。