首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

大道至簡:23 種設計模式一句話通透理解

     編輯:Java 相關知識

創建型模式 (5種)

模式核心比喻一句话精髓
Factory Method / Abstract Factory人才市場不用自找人才,直接向人才市場要,解耦建立邏輯。
Builder生產流水線將複雜物件建構拆解為步驟,流水線標準化輸出不同配置產品。
Prototype印刷術透過複製現有原型快速生成新實例,避免昂貴建構成本。
Singleton商標保護法全域唯一實例,受控存取,防止濫造。

結構型模式 (7種)

模式核心比喻一句话精髓
Adapter集眾人之私,成一己之公將不相容介面轉換為客戶期望介面,整合多來源能力。
Decorator青出於藍而勝於藍動態為物件添加職責,靈活擴展功能而不改原結構。
Bridge白馬非馬將抽象與實現分離,雙方獨立變化,動態組合靈活多變。
Composite大家族樹狀結構統一葉子與容器操作,遞歸處理部分-整體層級。
Facade求同存異 / 九年義務教育為複雜子系統提供統一高層介面,降低客戶端耦合度。
Flyweight一勞永逸 / 漢字庫共享細粒度物件,大量相似實例劇減記憶體佔用。
Proxy垂簾聽政代理控制對真實物件存取,增加間接層實現保護/延遲/遠端等。

行為型模式 (11種)

模式核心比喻一句话精髓
Chain of Responsibility租房找中介請求沿鏈傳遞,每個節點可處理或轉交,解耦發送者與接收者。
Command借刀殺人將請求封裝為物件,支援排隊、撤銷、記錄、宏命令。
Interpreter文言文注釋定義語言文法並建構解釋器,處理特定領域語言 (DSL)。
Iterator趕盡殺絕統一遍歷介面,隱藏集合內部結構,支援多種遍歷方式。
Mediator三角債引入中介集中管理物件間交互,將網狀依賴轉為星狀,降低耦合。
Memento有福同享捕獲物件內部狀態並外部化儲存,支援撤銷/恢復而不破壞封裝。
Observer看守者定義一對多依賴,主體狀態變更自動通知所有觀察者。
State進出自由 / 門衛保安物件行為隨內部狀態改變而改變,將狀態相關邏輯分散到狀態類。
Strategy久病成良醫定義演算法族,封裝各自,使其可互換,讓客戶端獨立於演算法。
Template Method理論不一定要實踐 / 教練不用會游泳父類定義演算法骨架,子類重寫特定步驟,複用不變流程。
Visitor依法治罪將操作從物件結構分離,新增操作無需修改結構類 (雙分派)。

學習建議

設計模式非死記硬背的教條,而是解決特定問題的經驗結晶。理解「為什麼需要它」比「結構長什麼樣」更重要。實務中常組合使用,請在重構時靈活套用,切勿為模式而模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved