テンプレートメソッド(デザインパターン)

OYPosted by

「Hi,ジョージ。デザインパターン使ってる?」

デザインパターンとは、要するに熟練プログラマたちが積み上げてきたノウハウ集みたいなものです。このノウハウを取り入れることで僕のようなナメクジプログラマでもそれなりにそれなりな実装ができます。

今回は、僕が実際に使ったことがあるもののうち「テンプレートメソッド」パターンについて紹介しようと思います。
(統計はどうしたって?うるせえ、忙しくて手が回ってねえんだ。)

このパターンは名前の通り、あるメソッドが持つ振る舞いをスーパークラスで定義(まさにテンプレート化)することで継承先のクラスは常にそのテンプレートに従って実装しなくてはならないというものです。

とりあえず、ソースコードです。急いで書いたのでミスあったらすみません。

———————————–
Mainクラスのmain実行結果
——————————-

共通前処理
Extend1前処理
Extend1メイン処理
共通前処理
Extend2前処理
Extend2メイン処理

——————————

注意すべき点は、

継承先で独自実装させる処理はアクセスレベルをprotectedにすること。

呼び出し側で実行される処理(上記ソースだとexecute()メソッド)は継承先で振る舞いを変えられないようにfinal修飾子を付けること。

くらいですかね。

また、これは継承に関係するデザインパターンなのでFactory系のパターンと併用できます。

以上。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA