| 模式 | 核心比喻 | 一句话精髓 |
|---|---|---|
| Factory Method / Abstract Factory | 人才市場 | 不用自找人才,直接向人才市場要,解耦建立邏輯。 |
| Builder | 生產流水線 | 將複雜物件建構拆解為步驟,流水線標準化輸出不同配置產品。 |
| Prototype | 印刷術 | 透過複製現有原型快速生成新實例,避免昂貴建構成本。 |
| Singleton | 商標保護法 | 全域唯一實例,受控存取,防止濫造。 |
| 模式 | 核心比喻 | 一句话精髓 |
|---|---|---|
| Adapter | 集眾人之私,成一己之公 | 將不相容介面轉換為客戶期望介面,整合多來源能力。 |
| Decorator | 青出於藍而勝於藍 | 動態為物件添加職責,靈活擴展功能而不改原結構。 |
| Bridge | 白馬非馬 | 將抽象與實現分離,雙方獨立變化,動態組合靈活多變。 |
| Composite | 大家族 | 樹狀結構統一葉子與容器操作,遞歸處理部分-整體層級。 |
| Facade | 求同存異 / 九年義務教育 | 為複雜子系統提供統一高層介面,降低客戶端耦合度。 |
| Flyweight | 一勞永逸 / 漢字庫 | 共享細粒度物件,大量相似實例劇減記憶體佔用。 |
| Proxy | 垂簾聽政 | 代理控制對真實物件存取,增加間接層實現保護/延遲/遠端等。 |
| 模式 | 核心比喻 | 一句话精髓 |
|---|---|---|
| Chain of Responsibility | 租房找中介 | 請求沿鏈傳遞,每個節點可處理或轉交,解耦發送者與接收者。 |
| Command | 借刀殺人 | 將請求封裝為物件,支援排隊、撤銷、記錄、宏命令。 |
| Interpreter | 文言文注釋 | 定義語言文法並建構解釋器,處理特定領域語言 (DSL)。 |
| Iterator | 趕盡殺絕 | 統一遍歷介面,隱藏集合內部結構,支援多種遍歷方式。 |
| Mediator | 三角債引入中介 | 集中管理物件間交互,將網狀依賴轉為星狀,降低耦合。 |
| Memento | 有福同享 | 捕獲物件內部狀態並外部化儲存,支援撤銷/恢復而不破壞封裝。 |
| Observer | 看守者 | 定義一對多依賴,主體狀態變更自動通知所有觀察者。 |
| State | 進出自由 / 門衛保安 | 物件行為隨內部狀態改變而改變,將狀態相關邏輯分散到狀態類。 |
| Strategy | 久病成良醫 | 定義演算法族,封裝各自,使其可互換,讓客戶端獨立於演算法。 |
| Template Method | 理論不一定要實踐 / 教練不用會游泳 | 父類定義演算法骨架,子類重寫特定步驟,複用不變流程。 |
| Visitor | 依法治罪 | 將操作從物件結構分離,新增操作無需修改結構類 (雙分派)。 |
設計模式非死記硬背的教條,而是解決特定問題的經驗結晶。理解「為什麼需要它」比「結構長什麼樣」更重要。實務中常組合使用,請在重構時靈活套用,切勿為模式而模式。