簡體   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