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. 圧縮アルゴリズム勉強メモ

comments powered by Disqus