
you are here
283
8
章
Template Method
パターン
(1)
お湯を沸かす。
(2)
沸騰したお湯でコーヒーを淹れる。
(3)
カップにコーヒーを注ぐ。
(4)
砂糖とミルクを加える。
スターバズコーヒーのレシピ
スターバズ紅茶のレシピ
(1)
お湯を沸かす。
(2)
沸騰したお湯に紅茶を浸す。
(3)
カップに紅茶を注ぐ。
(4)
レモンを加える。
さらに設計を進める
それでは、他に
Coffee
と
Tea
が共通して行うことは何でしょうか?
まずはレシピから始めま
しょう。
どちらのレシピも同じアルゴリズムに従っていますね。
1
お湯を沸かす。
2
3
4
お湯を使ってコーヒーか紅茶を抽出する。
抽出した飲み物をカップに注ぐ。
飲み物に適当なコンディメントを追加する。
❶と❸は、すでに基
底クラス内に抽象化
されています。
これらは抽象化され
ていませんが同じも
のです。別の飲み物
に適用しているだけ
です。
それでは、
prepareRecipe()
を抽象化する方法もあるのでしょうか?
あるのです。探してみましょう。