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

2021-06-16 05:46:31 字數 492 閱讀 1937

一、定義

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

怎麼理解呢?簡單來說,只要父類能出現的地方子類就可以出現,而且替換後不會產生任何錯誤或者異常,反之不然!

二、好處

這樣設計的程式,健壯性大大增加,版本公升級時也可以保持非常好的相容性,及時增加子類,原有子類也可以繼續執行而不會受到影響。

三、**示例

首先我們抽象乙個電腦遊戲類

下面是實現類 我們實現魔獸和cs好了

魔獸類cs類

我們還需要建立乙個玩家類

我們給這個類新增乙個所玩遊戲的屬性,這裡我們使用父類,並不指定具體的遊戲,然後新增選擇遊戲的方法,將所選擇的遊戲設定為

該玩家所玩的遊戲,最後是開始遊戲的方法。

最後是場景類:

我們可以看到,張三玩家不需要考慮每個具體遊戲有什麼不同,只要是電腦遊戲他都可以玩,只要設定成功,遊戲就可以開始,他們會自動呼叫不同的遊戲方法。

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

黎克特制替換原則的定義 黎克特制替換原則 liskov substitution principle,lsp 由麻省理工學院電腦科學實驗室的裡斯科夫 liskov 女士在 1987 年的 物件導向技術的高峰會議 oopsla 上發表的一篇文章 資料抽象和層次 data abstraction and...

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

what liskov substitution principle lsp 任何父類出現的地方,子類一定可以出現。why lsp是ocp原則的規範。ocp原則的關鍵的是抽象,而繼承關係又是抽象的一種具體表現。how 當子類不能完整的實現父類父類的方法,那麼建議斷開父子關係,採用依賴,聚合,組合等關...

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

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