模板方法模式定義
在抽象類別中定義演算法骨架(模板方法),將具體步驟延遲到子類別實作(基本方法)。不同子類別可提供不同步驟實作,從而實現演算法的多樣化變體。
核心特點
- **最常見的模式之一**:許多開發者無意識已在使用
- **基於繼承的代碼復用基礎技術**
- **面向對象設計核心**
- **分工協作**:架構師定義骨架,實作人員填充細節
關鍵術語
- 基本方法:代表具體邏輯步驟的方法
- 模板方法:將基本方法組裝成完整演算法的方法
模式結構圖

兩大角色職責
抽象模板角色
- 定義一或多個抽象操作(基本操作),作為頂層邏輯的組成步驟
- 定義並實作模板方法:給出頂層邏輯骨架,步驟委派給抽象操作(由子類實作)
- 可包含具體方法作為共用邏輯
具體模板角色
- 實作父類別定義的抽象方法
- 每個抽象模板可對應多個具體模板,提供不同步驟實作
- 從而使頂層邏輯呈現不同行為變體
適用場景
- 多個子類別共有演算法骨架,僅部分步驟不同
- 希望控制子類別擴展點,避免隨意覆寫核心流程
- 框架設計:定義不可變流程,開放特定擴展點