Template Method パターン

デザインパターンについて勉強を始めたので、自分なりにまとめていくことにした。

Template Methodとは

  • 振る舞いに関するデザインパターン
  • GoFによって定義されたデザインパターンのひとつ
  • クラス図はWikipedia参照
    Template Method パターン

要点

  • スーパークラスのメソッドでは、サブクラスに依存しない処理だけを実装する
  • サブクラスに依存する処理部分は、
    • スーパークラスでは、抽象メソッドとして定義して呼び出す
    • サブクラスで抽象メソッドを実装する

考察

応用、派生

スーパークラスで「抽象メソッドの代わりに、とりあえず標準的な処理を記述しておく」こともできそう。
ただしこれはTemplate Methodとは呼ばないかも。

メリット

  • 冗長なコードを減らせるため、保守性が向上する
  • 類似するクラスを作成したいときに再利用しやすい

デメリット

特に思い当たらなかった。

所感

これもデザインパターンになるの?というくらい、オブジェクト指向の基本に含まれる部分だと思う。
とりあえず最初に学ぶべきデザインパターン。

関連記事


  1. Open Session in Viewは使用すべきなのか?
  2. Singleton パターン
  3. イミュータブルオブジェクト
  4. Strategy パターン
  5. Factory Method パターン
  6. rmコマンドとmvコマンドの事故に備えた安全な使い方
  7. 圧縮アルゴリズム勉強メモ