C++面向對象設計原則學習筆記

原則一

依賴倒置原則(DIP):

  • 高層模塊(穩定)不應該依賴於底層模塊(變化),二者都應該依賴於抽象(穩定)。
  • 抽象(穩定)不應該依賴於實現細節(變化),實現細節應該依賴於抽象(穩定)。

 

原則二:

開放封閉原則(OCP):

  • 對外擴展開放,對更改封閉。
  • 類模塊應該是可擴展的,但是不可修改。

 

原則三:

單一職責原則(SRP):

  • 一個類應該僅有一個引起它變化的原因。
  • 變化的方向隱含着類的責任。

 

原則四

Liskov替換原則(LSP):

  • 子類必須能夠替換它們的基類(IS-A)。
  • 繼承表達類型抽象。

 

原則五

接口隔離原則(ISP):

  • 不應該強迫客戶程序依賴它們不用的方法。
  • 接口應該小而完善。

 

原則六

優先使用對象組合,而不是類繼承:

  • 類繼承通常“白箱複用”,對象組合通常爲“黑箱複用”。
  • 繼承在某種程度上破壞了封裝性,子類父類耦合高。
  • 而對象組合則只要求被組合的對象具有良好定義的接口,耦合度低。

 

原則七

封裝變化點:

  • 使用封裝創建對象之間的分界層,讓設計者可以在分界的一側進行修改,而不會對另一側產生不良影響,從而實現層次間的鬆耦合。

 

原則八

針對接口編程,而不是針對實現編程:

  • 不將變量類型聲明爲某個特定的具體類,而是聲明爲某個接口。
  • 客戶端程序無需獲知對象的具體類型,只需要知道對象所具有的接口。
  • 減少系統中各部分的依賴關係,從而實現“高內聚,鬆耦合”的類型設計方案。

 

 

發佈了146 篇原創文章 · 獲贊 226 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章