黎克特制替換原則

2021-10-06 02:21:18 字數 1239 閱讀 2165

什麼是黎克特制替換原則?

黎克特制代換原則(liskov substitution principle lsp)物件導向設計的基本原則之一。 黎克特制代換原則中說,任何父類可以出現的地方,子類一定可以出現。 lsp是繼承復用的基石,只有當派生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而派生類也能夠在基類的基礎上增加新的行為。(子類可以替換父類)

因為繼承帶來的侵入性,增加了耦合性,也降低了**靈活性,父類修改**,子類也會受到影響,此時就需要黎克特制替換原則。

繼承的優缺點

繼承有一些優點:

提高**的重用性,子類擁有父類的方法和屬性;

提高**的可擴充套件性,子類可形似於父類,但異於父類,保留自我的特性;

缺點:侵入性、不夠靈活、高耦合

繼承是侵入性的,只要繼承就必須擁有父類的所有方法和屬性,在一定程度上約束了子類,降低了**的靈活性;

增加了耦合,當父類的常量、變數或者方法被修改了,需要考慮子類的修改,所以一旦父類有了變動,很可能會造成非常糟糕的結果,要重構大量的**。

黎克特制替換思維導圖

情況舉例**

情況一:子類物件能夠替換其父類

student stu=

newstudent()

;person p =stu;

p.show()

;

情況二:父類物件不能直接轉換子類

person p=

newperson()

;student stu =

(student)p;

stu.

sayhello()

;

情況三:new的時候new的是子類,再轉換這個子類的時候可以

person p=

newteacher()

;teacher t =

(teacher)p;

t.sayhi()

;

情況四:new的是子類,轉換的另乙個子類,報異常

person p =

newteacher()

;student stu =

(student)p;

stu.sayhello;

黎克特制替換原則

黎克特制替換原則 黎克特制代換原則 liskov substitution principle lsp 物件導向設計的基本原則之一。黎克特制代換原則中說,任何基類可以出現的地方,子類一定可以出現。lsp是繼承復用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被復用,而衍...

黎克特制替換原則

黎克特制替換原則更多的說的是子類與父類的關係的一種原則,子類必須實現父類的所有方法,所有能夠放子類的地方一定能夠放父類。但是這裡的話,我們講有的時候在我們的業務中,有的子類肯定是有個性化的特徵的,比如真槍和玩具槍,真槍能射出子彈,但是玩具槍就不能,那麼這個時候,我們或者通過抽象類,通過抽象類是我們可...

黎克特制替換原則

黎克特制替換原則,主要是乙個關於繼承的規範原則,它要求我們在軟體中寫繼承關係時,所有引用父類的地方必須能夠 透 明地使用其子類物件 子類可以實現父類所提供的抽象 方法,但不要去重寫父類已經實現的方法,或者過載父類的 構 造。要維護繼承的傳遞性,當然很多地方為這個原則打了個 比喻為 龍生龍,鳳生鳳,老...