黎克特制代換原則

2021-07-09 19:12:49 字數 773 閱讀 2611

黎克特制代換原則

黎克特制代換原則:子型別必須能夠替換掉它們的父型別。

就是說乙個軟體實體,如果使用的是乙個父類的話,那麼一定適用於其子類,而且,它覺察不出父類物件和子類物件的區別,也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。

只有當子類可以替換掉父類,軟體單位的功能不收到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。

正是由於子型別的可替換性,才使得使用父類型別的模組,在無需修改的情況下就可以擴充套件。

優點:

1、**共享,減少建立類的工作量,每個子類都擁有父類的方法和屬性。

2、提高**的重用性。

3、子類可以形成父類,但有異於父類。

4、提高**的可擴充套件性,實現父類的方法,很多開源框架的擴充套件介面都是通過繼承父類來完成的。

5、提高產品或專案的開放性。

當然,有優點就會有缺點,繼承的缺點如下:

1、繼承是侵入性的,只要繼承,就必須擁有父類所有的屬性和方法。

2、降低**的靈活性,子類必須擁有父類的屬性和方法,讓子類自由的世界中多了些約束。

3、增強了耦合性,當父類的常量、變數和方法被修改時,必須要考慮子類的修改,而且在缺乏規範的環境下,這種修改可能帶來非常糟糕的結果——大片的**需要重構。

黎克特制代換原則為良好的繼承定義了乙個規範:

1、子類必須完全實現父類的方法。

2、子類可以有自己的個性。

3、覆蓋或實現父類的方法時,輸入引數就可以被放大。

4、覆蓋或實現父類的方法時,輸出結果可以被縮小。

黎克特制代換原則

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

黎克特制代換原則

黎克特制代換原則 子型別必須能替換掉它們的父型別.只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正的被復用,而子類也能夠在父類的基礎上增加新的行為.比如說,貓類繼承動物類,動物類擁有吃喝叫跑等行為,當某一天,我們需要狗,牛,羊也擁有類似的行為,由於它們都是繼承於動物,所以除了更改例...

黎克特制代換原則

物件導向設計的重要原則是建立抽象化,並且從抽象化匯出具體化。這個匯出要使用繼承關係和乙個原則 黎克特制代換原則 liskov substitution principle lsp 那麼什麼是黎克特制代換原則呢?有個嚴格的表述,繞口,不好記。還是比較白話的這個好記。說的是 乙個軟體實體如果使用的是乙個...