學到的第二個模式,易懂且極具實用價值。
對於操作,只先定義好演算法輪廓,某些步驟留給子類別填補,不改變整體架構下讓子類別精鍊特定步驟。
| 步驟 | 自動泡茶機 | 自動泡咖啡機 |
|---|---|---|
| Step 1 | 將開水煮開 | 將開水煮開 |
| Step 2 | 將茶葉放入開水 | 將咖啡粉放入開水 |
| Step 3 | 將茶倒入杯子 | 將咖啡倒入杯子 |
| Step 4 | 加上檸檬 | 加上糖和奶精 |
Step 1 相同,Step 2-4 不同。設計 DrinkMachine 定義流程與 Step 1,Step 2-4 留待子類別實作。
Template Method Pattern = 將不同的成員函數用類別封裝,由衍生類別重寫。