デザインパターン勉強 TemplateMethodパターン
GoFのデザインパターンのTemplateMethodパターンを勉強してみます。
TemplateMethodパターン
スーパークラスで処理の枠組みを決め、サブクラスで具体的な内容を定めるデザインパターンです。
サブクラスに実装を作るため、スーパークラスに影響を与えないで類似クラスを作成できます。
使い方
class Report { public abstract function header(); public abstract function body(); public abstract function footer(); public function output(){ this.header(); this.body(); this.footer(); } } class Attendance extends Report { public function header(){ echo "出勤簿"; } public function body(){ echo "内容"; } public function footer(){ echo "フッター"; } } class Statistic extends Report { public function header(){ echo "統計"; } public function body(){ echo "結果"; } public function footer(){ echo "フッター"; } }
outputを呼び出すことで、サブクラスのそれぞれの内容を出力することができます。
雑記
生成に関するパターンの中で理解しやすいTemplateMethodパターンです。
生成に関するパターンの違いがあまり理解できていないので細かく理解していきます。
パターンの説明を自分の言葉で説明できていないため、参考のページや本からほぼそのまま書いてしまっています。
言葉にするのが難しいです。