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

2021-10-19 17:38:10 字數 1091 閱讀 2770

黎克特制替換原則是任何基類出現的地方,子類一定可以替換它;是建立在基於抽象、多型、繼承的基礎復用的基石,該原則能夠保證系統具有良好的拓展性,同時實現基於多型的抽象機制,能夠減少**冗餘。

黎克特制替換原則要求我們在編碼時使用基類或介面去定義物件變數,使用時可以由具體實現物件進行賦值,實現變化的多樣性,完成**對修改的封閉,擴充套件的開放。如:**商品結算中,定義結算介面istrategy,該介面有三個具體實現類,分別為promotionalstrategy (滿減活動,兩百以上百八折)、rebatestrategy (打折活動)、 reducestrategy(返現活動);

public

inte***ce

istrategy

public

class

promotionalstrategy

implements

istrategy

else}}

public

class

rebatestrategy

implements

istrategy

public

double

realprice

(double consumeprice)

}public

class

reducestrategy

implements

istrategy

else

}}

呼叫方為context,在此類中使用介面定義了乙個物件。其**如下:

public

class

context

// 計算並返回費用

public

double

cul(

double consumeprice)

}

context 中**使用介面定義物件變數,這個物件變數可以是實現了lstrategy介面的promotionalstrategy、rebatestrategy 、 reducestrategy任意乙個。

黎克特制替換原則和依賴倒置原則,構成了面向介面程式設計的基礎,正因為黎克特制替換原則,才使得程式呈現多樣性。

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

黎克特制替換原則lsp liskov substitution principle 主要闡述了有關繼承的一些原則。子類可以擴充套件父類的功能,但不能改變父類原有的功能,如果重寫了父類的方法,就會降低整個繼承體系的復用性,如果違背了黎克特制替換原則,就很有可能出現執行錯誤 這裡以乙個鳥的例子來闡述 首...

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

黎克特制替換原則 liskov substitution principle,lsp 是指如果對每乙個型別為t的物件o,都有型別為t1的物件o1,使得以t定義的所有程式p在所有的物件o替換為o1是,程式p的行為沒有發生變化,那麼型別t1是型別t的子類。通俗理解是 中任何父類物件可以出現的地方,子類都...

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

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