前言
板橋裡人系列為國內最早系統介紹 GoF 設計模式,本文彙總分類索引,詳細講解請參閱原系列文章或《Java 實用系統開發指南》實戰案例。
A. 創建型模式 (5 種)
- Factory Method / Abstract Factory:封裝對象創建,像
new 一樣頻繁使用。
- Prototype:用原型實例指定類型,通過克隆創建新對象。
- Builder:將複雜對象構建與表示分離(如汽車組裝)。
- Singleton:保證類唯一實例,提供全局訪問點。
B. 結構型模式 (7 種)
- Facade:為子系統提供統一高層接口(如 JDBC 多數據庫適配)。
- Proxy:為其他對象提供代理控制訪問(如 Jive 用戶授權)。
- Adapter:將接口轉換為客戶期望接口(組合優於繼承)。
- Composite:樹形結構組合對象,整體-部分一致性(如 Jive 權限樹)。
- Decorator:動態添加職責,像油漆工刷顏色。
- Bridge:將抽象與實現分離,動態組合(牛郎織女搭橋)。
- Flyweight:共享細粒度對象,降低內存開銷。
C. 行為型模式 (11 種)
- Template Method:定義算法骨架,子類實現細節(抽象類典型應用)。
- Memento:備份狀態以便恢復。
- Observer:發布-訂閱,Java API 內建支援。
- Chain of Responsibility:責任鏈傳遞,擊鼓傳花。
- Command:將請求封裝為對象(撤銷/重做、隊列)。
- State:狀態對象化,狀態轉換器切換行為。
- Strategy:算法族封裝,客戶端動態切換。
- Mediator:中介者協調同事對象(紅綠燈)。
- Interpreter:語言文法解析,應用較少。
- Visitor:分離操作與對象結構,易擴展操作。
- Iterator:遍歷聚合對象,已融入 Java Collection 框架。
延伸資源
- Thinking in Patterns with Java (Bruce Eckel)。
- CMSC491D Design Patterns in Java Overview。
- Design Patterns Java Companion。
- J2EE 模式:EJB 中的模式應用、《程序員》刊文、Sun J2EE Patterns。