TemplateMethodパターン@Java言語で学ぶデザインパターン入門

image

参考にした本

TemplateMethodパターンとは?

参考にした本では以下のように説明されています。

スーパークラスで処理の枠組みを定め、サブクラスでその具体的内容を定めるようなデザインパターンをTemplateMethodパターンとよぶ

メリット

  1. ロジックを共通化できる
  2. スーパークラスで宣言されている抽象メソッドをしっかり理解する必要がある
  3. サブクラスをスーパクラスを同一視することができる

メリットについてはサンプルコードを見た後に改めて振り返って見ましょう

サンプルコード

クラス図はこんな感じ

AbstractCalculaterクラス

このクラスで処理の枠組みを定義しています。

サブクラスで実際の挙動を定義していきます。

IntCalculaterクラス

コンストラクタで受け取った整数を二乗して出力する簡単なクラスです。

DoubleCalculaterクラス

Mainクラス

実行結果

メリットの確認

①ロジックの共通化ができる

これは一目瞭然だと思います。

サンプルコードでいうとIntCalculater,DoubleCalculaterクラスのロジックが共通化されています。

バグ修正が簡単になったりします。

②スーパークラスで宣言されている抽象メソッドをしっかり理解する必要がある

AbstractCalculaterクラスの実装を理解してからでないとサブクラスによる実装ができません。

これにより、変な実装ミスがなくなったりします。

③サブクラスをスーパークラスと同一視する

スーパークラスの変数にサブクラスのインスタンスを代入できるようになっています。

再利用性が高まっていますね:)

コメントを残す

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

CAPTCHA


error: Content is protected !!