將複雜物件的建構與其表示分離,使相同建構過程可建立不同表示。
客戶進店 → 業務詢問需求 → 形成配置單 → 提貨人員備料 → 技術人員固定流程組裝(鎖主板 → 裝 CPU → 裝記憶體 → 接硬碟 → 裝顯卡)。
變化點:每台電腦零件規格不同(高/低配)。
穩定點:組裝步驟固定不變。
引入 Builder 將「變化的零件選擇」與「穩定的組裝流程」分離。
Client → Director (BuildComputer)
↓ 呼叫建構步驟
Abstract Builder (SetupMainboard, SetupCpu...)
↑ 實作
Concrete Builder (OfficeComputerBuilder, GameComputerBuilder)
↓ 產出
Product (Computer)
| 模式 | 差異焦點 |
|---|---|
| Builder | 分離「建構流程」與「組件細節」,同一流程多種表示 |
| Abstract Factory | 強調「系列產品」一致性建立,無建構順序概念 |
| Factory Method | 單一產品建立,由子類決定具體類別 |
| Template Method | 定義演算法骨架,子類實作步驟,非建構物件導向 |