Template Method Pattern
在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。
Example: 影片製作大師
樣板方法模式會將類別分為兩類:
分別是抽象規則類 (Abstract Class) 與 實體算法類 (Concrete Class) 。
抽象規則類負責定義流程,實體算法類則關心細節如何實現。
也可以增加鉤子 (hook),使子類更加容易客製化。
優點:
可以讓主流程中,相同的部分共用,不同的部分產生變化。
缺點:
會使子類受限於骨架。
與其他模式的比較:
[簡單工廠模式]:
簡單工廠模式,是一個迷你的樣板方法模式,
它只提出了建造類別這個步驟。
[策略模式]:
策略模式,可以是樣板方法模式中的某個步驟。
以上兩個模式都可以與樣板方法模式協作良好。
當需要在同一套流程中,有部分細節需要個別實現時,
很可能就是使用樣板方法模式的時機。
ʕ •ᴥ•ʔ:感覺大部分的情境中,樣板方法模式都不會只是單獨出現。