設計原則之黎克特制替換原則(LSP)

2021-09-24 05:43:27 字數 362 閱讀 9325

lsp(黎克特制替換原則)

兩種定義:

型別t是型別s的子型別

所用引用基類的地方必須能透明的使用期子類物件

為什麼要使用黎克特制替換原則

讓繼承中的「利」大於「弊」發揮最大作用,同時減少「弊」所帶來的麻煩(繼承的優點是什麼?缺點?)

黎克特制替換要求凡是使用基類的地方,子類一定適用,因此子類必須具備基類的全部介面

設計模式中體現黎克特制替換原則的有:策略模式、組合模式、**模式

animal animal;

animal = new horse();

animal.move();

animal = new bird();

animal.move();

黎克特制替換原則,LSP

所有引用基類的地方必須能夠透明地使用其子類的物件。通俗點講,只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任務異常。我們知道物件導向語言的三大特性就是繼承 封裝 多台,黎克特制替換原則就是依賴於繼承 多型,建立抽象,通過抽象建立規範,在執行時替換成具體的物件,保證系統的拓展性 靈活性。...

物件導向設計原則 黎克特制替換原則 LSP

要 求 子類可以替換父類並且出現在父類能夠出現的任何地方 這個原則也是在貫徹gof倡導的面向介面程式設計!在這個原則中父類應盡可能使用介面或者抽象類來實現!子類通過實現了父類介面,能夠替父類的使用地方!通過這個原則,我們客戶端在使用父類介面的時候,通過子類實現!意思就是說我們依賴父類介面,在客戶端宣...

七 LSP 黎克特制替換原則

子類的物件提供了父類的所有行為,且加上子類額外的一些東西 可以是功能,可以是屬性 當程式基於父類實現時,如果將子類替換父類而程式不需修改,則說明符合lsp原則。這個解釋看的似懂非懂,再看下面更進一步的解釋 函式使用指向父類的指標或引用時,必須能夠在不知道子類型別的情況下使用子類的物件。子類必須能夠替...