1. 程式人生 > >可複用面向物件軟體基礎——設計模式(一)之總覽

可複用面向物件軟體基礎——設計模式(一)之總覽

一、設計模式特點

  1. 反覆使用
  2. 分類編目
  3. 經驗總結

二、設計模式宗旨

  1. 程式碼重用
  2. 使程式碼易於理解
  3. 保證程式碼可靠性

三、設計模式分類(23+2)

  1. 建立型(5種)
  2. 結構型(7種)
  3. 行為型(11種)
  4. 其他(2種)

(1)建立型模式

  1. 工廠方法模式
  2. 抽象工廠模式
  3. 單例模式
  4. 建造者模式
  5. 原型模式

(2)結構型模式

  1. 介面卡模式
  2. 裝飾器模式
  3. 代理模式
  4. 外觀模式
  5. 橋接模式
  6. 組合模式
  7. 享元模式

(3)行為型模式

  1. 策略模式
  2. 模板方法模式
  3. 觀察者模式
  4. 迭代子模式
  5. 責任鏈模式
  6. 命令模式
  7. 備忘錄模式
  8. 狀態模式
  9. 訪問者模式
  10. 中介者模式
  11. 直譯器模式

(4)其他

  1. 併發型模式
  2. 執行緒池模式

四、設計模式原則(6項)

  1. 開閉原則(Open Close Principle)
  2. 里氏代換原則(Liskov Substitution Principle)
  3. 依賴倒轉原則(Dependence Inversion Principle)
  4. 介面隔離原則(Interface Segregation Principle)
  5. 迪米特法則(最少知道原則)(Demeter Principle)
  6. 合成複用原則(Composite Reuse Principle)

五、原則詳解

(1)開閉原則

開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的程式碼,實現一個熱插拔的效果。目的在於使程式的擴充套件性好,易於維護和升級。所以需要使用到介面和抽象類

(2)里氏代換原則

里氏代換原則(LSP)是面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現

LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。

(3)依賴倒轉原則

這個是開閉原則的基礎,具體內容:針對介面程式設計依賴於抽象而不依賴於具體。

(4)介面隔離原則

這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。還是一個降低類之間的耦合度的意思。

從這兒我們看出,其實設計模式就是一個軟體的設計思想,從大型軟體架構出發,為了升級和維護方便。所以上文中多次出現:降低依賴,降低耦合。

(5)迪米特法則(最少知道原則)

為什麼叫最少知道原則,就是說:一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模組相對獨立

(6)合成複用原則

原則是儘量使用合成/聚合的方式,而不是使用繼承。