iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1

本文同步更新於blog

Template Method Pattern

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


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

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


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

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


與其他模式的比較:

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

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

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


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

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


上一篇
Day15. 範例:機器人廚師(命令模式)
下一篇
Day17. 範例:影片製作大師(樣板方法模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言