1 設計模式 黎克特制替換原則

2021-08-26 12:21:11 字數 430 閱讀 6127

黎克特制替換,lsp(liskov substitution principle),所有引用基類的地方必須能夠透明地使用其子類的物件。通俗點講,只要父類能出現的地方子類就可以出現,而且替換為子類也不會產生任何異常。 

我們知道物件導向語言的三大特徵是繼承、封裝、多型,黎克特制替換原則就是依賴於繼承、多型,建立抽象,通過抽象建立規範,在執行時替換成具體的物件,保證系統的擴充套件性、靈活性。 

往往和開放封閉原則不離不棄。

定義明確的說,只要父類能出現的地方子類也可以出現,而且替換為子類不會產生任何錯誤或異常,但是反過來就不行,有子類出現的地方,父類未必就能適應。

子類當然可以有自己的行為和外觀,也就是方法和屬性。但是黎克特制替換原則可以正著用,但是不能反著用。在子類出現的地方,父類未必就可以勝任。

所有子類的行為功能必須和其父類持一致,如果子類達不到這一點,那麼必然違反黎克特制替換原則。

設計模式 黎克特制替換原則

設計模式 黎克特制替換原則 物件導向的語言繼承必不可少的,有如下優點 共享,減少建立類的工作量 提高 的重用性 提高 的可擴充套件性 提高 的可擴充套件性 提高產品 的開放性 繼承侵入性 只要繼承,必須擁有父類的內容 降低 的靈活性,子類必須擁有父類的屬性和方法 增強耦合性。黎克特制替換原則,為繼承...

設計模式 (黎克特制替換原則)

黎克特制替換原則的引入 是針對物件導向中的繼承的缺點 乙個原則首先先介紹下它的定義 黎克特制替換原則為繼承定義了規範,下面我用書中看到的例子來說 1.子類必須完全實現父類的方法 首先先定義乙個槍的抽象類 public abstract class abstractgun 實現類的定義,不同的槍枝進行...

設計模式 黎克特制替換原則

設計模式 黎克特制替換原則 oo 中的繼承性的思考和說明 繼承包含這樣一層含義 父類中凡是已經實現好的方法,實際上是在設定規範和契約,雖然它不強制要求所有的子類必須遵循這些契約,但是如果子類對這些已經實現的方法任意修改,就會對整個繼承體系造成破壞。繼承在給程式設計帶來便利的同時,也帶來了弊端。比如使...