天天看點

設計模式——前言

設計模式學習筆記,參考了李忠宇老師的視訊,其它參考資料在文中以連結形式給出。

分類

建立型(Creational)、結構型(Structural)、行為型(Behavioral)​

要點

  • 好的面向對象設計——應對變化、提高複用
  • 在變化點處應用設計模式
  • 重構關鍵技法  靜态-->動态

      早綁定-->晚綁定

      繼承-->組合

      編譯時依賴-->運作時依賴 

      緊耦合-->松耦合

  • 設計模式應用的前提是至少要有一個穩定點,也至少要有一個變化點。設計模式最大的作用就是在穩定和變化中尋找隔離點,然後分離它們,進而來管理變化。

裡氏替換原則

裡氏替換原則(Liskov Substitution Principle,LSP)的含義是:要保證子類能“無害地”替換基類。

類B派生自類A,現在,把程式中所有A類執行個體都換成B類執行個體,同時使得所有A類指針都指向B類執行個體,若此時程式仍然能夠運作且不發生邏輯錯誤(如不會由做加法變成做減法),則稱B對A的擴充滿足裡氏替換原則。

裡氏替換原則不僅是對子類的限制,也是對父類的限制。那就是:父類盡量不要改動,即使不得已要改動,也要保證能相容所有子類(即可以被任何子類所代替)。例如,父類A(如超級英雄類)中方法foo用來計算角色武力值,子類B(如蝙蝠俠類)用來計算蝙蝠俠的武力值。現在,把父類A的foo方法改為計算角色的生命值。此時,子類B不能代替父類A,因為B.foo用來計算武力值,不能用來計算生命值(即此時A.foo的功能)。

參考[1][2]。

參考

[1] 裡氏替換原則LSP|極客教程​

[2] 裡氏替換原則——面向對象設計原則​

繼續閱讀