『Java言語で学ぶデザインパターン入門』をPHPで実習する 第3章Template Method

増補改訂版Java言語で学ぶデザインパターン入門

本記事に掲載したサンプルコードは、https://github.com/ryo-utsunomiya/design_patternでも公開中です。

Template Methodとは

スーパークラスで処理の枠組を定め、サブクラスでその具体的内容を定めること。

ここでは、「文字・文字列を5回繰り返して表示する」というクラスを実装します。

まずは、表示処理のテンプレートクラス。

ここでは、インタフェースではなく、抽象クラスであることが重要です。display()が処理のテンプレートを定めています(ここでは、open → showを5回繰り返す → close という流れ)。

次に、文字列を表示するクラスを実装します。

もう一つは、文字列を表示するクラスです。こちらは文字幅の保時が必要なので、少しだけ複雑です。

以下のようなコードで実行できます。

出力は以下のようなフォーマットになります。

このように、「大枠だけ抽象クラスで定義しておいて、個別のクラスの事情に合わせてカスタマイズする」という実装方法はPHPによるWebアプリケーション開発でも頻繁に使うテクニックです。技法としては知っていたという人もおおいでしょうが、この技法を「Template Method」と呼ぶ、ということも合わせて覚えておくと、他の開発者とのコミュニケーションがスムーズになるでしょう。

コメントを残す