可複用面向物件軟體基礎——設計模式(一)之總覽
阿新 • • 發佈:2019-01-29
一、設計模式特點
- 反覆使用
- 分類編目
- 經驗總結
二、設計模式宗旨
- 程式碼重用
- 使程式碼易於理解
- 保證程式碼可靠性
三、設計模式分類(23+2)
- 建立型(5種)
- 結構型(7種)
- 行為型(11種)
- 其他(2種)
(1)建立型模式
- 工廠方法模式
- 抽象工廠模式
- 單例模式
- 建造者模式
- 原型模式
(2)結構型模式
- 介面卡模式
- 裝飾器模式
- 代理模式
- 外觀模式
- 橋接模式
- 組合模式
- 享元模式
(3)行為型模式
- 策略模式
- 模板方法模式
- 觀察者模式
- 迭代子模式
- 責任鏈模式
- 命令模式
- 備忘錄模式
- 狀態模式
- 訪問者模式
- 中介者模式
- 直譯器模式
(4)其他
- 併發型模式
- 執行緒池模式
四、設計模式原則(6項)
- 開閉原則(Open Close Principle)
- 里氏代換原則(Liskov Substitution Principle)
- 依賴倒轉原則(Dependence Inversion Principle)
- 介面隔離原則(Interface Segregation Principle)
- 迪米特法則(最少知道原則)(Demeter Principle)
- 合成複用原則(Composite Reuse Principle)
五、原則詳解
(1)開閉原則
開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的程式碼,實現一個熱插拔的效果。目的在於使程式的擴充套件性好,易於維護和升級。所以需要使用到介面和抽象類
(2)里氏代換原則
里氏代換原則(LSP)是面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。
LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。
(3)依賴倒轉原則
這個是開閉原則的基礎,具體內容:針對介面程式設計,依賴於抽象而不依賴於具體。
(4)介面隔離原則
這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。還是一個降低類之間的耦合度的意思。
從這兒我們看出,其實設計模式就是一個軟體的設計思想,從大型軟體架構出發,為了升級和維護方便。所以上文中多次出現:降低依賴,降低耦合。
(5)迪米特法則(最少知道原則)
為什麼叫最少知道原則,就是說:一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模組相對獨立。
(6)合成複用原則
原則是儘量使用合成/聚合的方式,而不是使用繼承。