樣板方法模式

Template Method Pattern

在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。

Example: 影片製作大師


樣板方法模式會將類別分為兩類:
分別是抽象規則類 (Abstract Class)實體算法類 (Concrete Class)

抽象規則類負責定義流程,實體算法類則關心細節如何實現。
也可以增加鉤子 (hook),使子類更加容易客製化。


優點:
可以讓主流程中,相同的部分共用,不同的部分產生變化。

缺點:
會使子類受限於骨架。


與其他模式的比較:

[簡單工廠模式]:
簡單工廠模式,是一個迷你的樣板方法模式,
它只提出了建造類別這個步驟。

[策略模式]:
策略模式,可以是樣板方法模式中的某個步驟。

以上兩個模式都可以與樣板方法模式協作良好。


當需要在同一套流程中,有部分細節需要個別實現時
很可能就是使用樣板方法模式的時機。

ʕ •ᴥ•ʔ:感覺大部分的情境中,樣板方法模式都不會只是單獨出現。