オブジェクト指向のこころ 第19章の練習問題の解答をまとめてみる。
基礎
Template Methodパターンによって,メソッド呼び出しが特殊な方法で行われるようになります.その方法を説明してください.
メソッドの呼び出しが派生クラスの参照を経由して行われるため.
(p.285)
応用
GoFによれば,Template Methodパターンの目的は,「ある操作におけるアルゴリズムの骨格を定義し,いくつかの処理の定義についてはサブクラスに任せる.そしてアルゴリズムの構造を変更することなく,その中に含まれる処理の再定義を行う」となっています.これはどういったことを意味しているのでしょうか?
複数の手続き中に共通して存在する手順を抽象レベルで一般化することができる.
Template Methodパターンによって,こういった共通概念を抽象クラスにまとめながら,細かな差異を派生クラスにカプセル化する手段が与えられる.
(p.284)
GoFはこのパターンを「Template Method」と呼んでいます.何故だと思いますか?
このパターンが,手続きのテンプレートを提供してくれて,その中で手順が指定されているため.
StrategyパターンとTemplate Methodパターンの違いを答えてください.
Template Methodパターンは,詳細が異なっているが,概念的には同等の手順であるときに使えるパターン Strategyパターンは,アルゴリズムのファミリを制御する.それらは概念的に同等ではなくて良い.そのときどきに採用するアルゴリズムを決定する.