天天看點

設計模式總綱

設計模式是一套被反複使用、多數人知曉的、經過分類的、代碼設計的經驗的總結。使用設計模式是為了可重用代碼,讓代碼更容易被他人了解,保證代碼可靠性。

設計模式遵循以下幾個原則。

  • 開閉原則(Open Close Principle)

    開閉原則的意思是:對擴充開放,對修改封閉。在程式需要進行擴充的時候,不能去修改或影響原有的代碼,實作一個熱插拔的效果。簡言之,是為了使程式的擴充性更好,易于維護和更新。想要達到這樣的效果,我們需要使用接口和抽象類。

  • 裡氏代換原則(Liskov Substitution Principle)

    裡氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。裡氏代換原則是繼承複用的基石,隻有當子類可以替換掉基類,且軟體機關的功能不受到影響時,基類才能真正被複用,而且子類也能夠在基類的基礎上增加新的行為。裡氏代換原則是對開閉原則的補充。實作開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關系就是抽象化的具體實作,是以裡氏代換原則是對實作抽象化的具體步驟的規範。

  • 依賴倒轉原則(Dependence Inversion Principle)

    這個原則是開閉原則的基礎,核心内容:針對接口程式設計,高層子產品不應該依賴底層子產品,二者都應該依賴抽象而不依賴于具體。

  • 接口隔離原則(Interface Segregation Principle)

    這個原則的意思是:使用多個隔離的接口,比使用單個龐大的接口要好。其目的在于降低耦合度。由此可見,其實設計模式就是從大型軟體架構出發,便于更新和維護軟體的設計思想。它強調低依賴、低耦合。

  • 合成複用原則(Composite Reuse Principle)

    合成複用原則就是在一個新的對象裡通過關聯關系(組合關系、聚合關系)來使用一些已有的對象,使之成為新對象的一部分;新對象通過委派調用已有對象的方法達到複用功能的目的。簡而言之,盡量多使用組合/聚合的方式,盡量少使用甚至不使用繼承關系。

設計模式分為三大類:

  • 建立型模式:工廠模式、抽象工廠模式、單例模式、建造者模式、原型模式。
  • 結構型模式:擴充卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
  • 行為型模式:政策模式、模闆方法模式、觀察者模式、疊代子模式、責任鍊模式、指令模式、備忘錄模式、狀态模式、通路者模式、中介者模式、解釋器模式。

繼續閱讀