Java中23種設計模式:六大設計原則的分析與介紹

攻城獅Chova發表於2021-06-15

設計模式介紹

  • 設計模式(Design Patterns):
    • 一套被反覆使用,多數人知曉,經過分類編目,程式碼設計的總結
    • 使用設計模式是為了可重用程式碼,讓程式碼更容易理解,保證程式碼可靠性
  • 專案中合理運用設計模式可以完美的解決很多問題,每種模式都有相應的原理與之對應,
  • 每個模式描述了一個在我們周圍不斷重複發生的問題,以及該問題的核心解決方案

設計模式分類

  • 總體來說,設計模式分為三大類:
    • 建立型模式(5種):
      • 工廠方法模式
      • 抽象工廠模式
      • 單例模式
      • 建造者模式
      • 原型模式
    • 結構型模式(7種):
      • 介面卡模式
      • 裝飾器模式
      • 代理模式
      • 外觀模式
      • 橋接模式
      • 組合模式
      • 享元模式
    • 行為型模式(11種):
      • 策略模式
      • 模板方法模式
      • 觀察者模式
      • 迭代子模式
      • 責任鏈模式
      • 命令模式
      • 備忘錄模式
      • 狀態模式
      • 訪問者模式
      • 中介者模式
      • 直譯器模式
  • 其餘兩類模式:
    • 併發型模式
    • 執行緒池模式
      -

設計模式六大原則

單一職責原則(Single Responsibility Principle) - 這裡的設計模式原則,主要討論的是Java物件導向程式設計設計中設計原則,單一職責原則由於其適用的普遍性,個人認為不放在六大原則之中

  • 單一職責原則 :一個類只負責一項職責
  • 不能存在多於一個導致類變更的原因
  • 單一職責原則符合"高內聚,低耦合"的思想
  • 單一職責原則不只是物件導向程式設計思想所特有的,只要是模組化的程式設計,都適用單一職責原則

開閉原則(Open Close Principle)

  • 開閉原則 :對擴充套件開放,對修改關閉
  • 程式進行擴充套件的時候,不能修改原有的程式碼, 實現一個熱插拔的效果
  • 為了使程式擴充套件性好,易於維護和升級:需要使用介面和抽象類

里氏代換原則(Liskov Substitution Principle)

  • 里氏代換原則 :任何基類可以出現的地方,子類一定可以出現
  • LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受影響時, 基類才能真正被複用,衍生類也能夠在基類的基礎上增加新的行為
  • 里氏代換原則是對實現抽象化的具體步驟的規範:
    • 里氏代換原則是對開閉原則的補充
    • 實現開閉原則的關鍵步驟就是抽象化
    • 基類與子類的繼承關係就是抽象化的具體實現

依賴倒轉原則(Dependence Inversion Principle)

  • 依賴倒轉原則 :針對介面程式設計,依賴於抽象而不依賴於具體
  • 依賴倒轉原則是開閉原則的基礎

介面隔離原則(Interface Segregation Principle)

  • 介面隔離原則 :使用多個隔離的介面,比使用單個介面要好,降低類之間的耦合度
  • 從介面隔離原則可以看出:設計模式就是一個軟體的設計思想
  • 從大型軟體架構出發,為了升級和維護方便 :降低依賴,降低耦合

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

  • 迪米特法則:最少知道原則 ,一個實體應當儘量少的與其它實體發生相互作用,使得功能模組相互獨立

合成複用原則(Composite Reuse Principle)

  • 合成複用原則 :儘量使用合成或者聚合的方式,而不是使用繼承

相關文章