Template Method パターン
デザインパターンについて勉強を始めたので、自分なりにまとめていくことにした。
Template Methodとは
- 振る舞いに関するデザインパターン
- GoFによって定義されたデザインパターンのひとつ
- クラス図はWikipedia参照
Template Method パターン
要点
- スーパークラスのメソッドでは、サブクラスに依存しない処理だけを実装する
- サブクラスに依存する処理部分は、
- スーパークラスでは、抽象メソッドとして定義して呼び出す
- サブクラスで抽象メソッドを実装する
考察
応用、派生
スーパークラスで「抽象メソッドの代わりに、とりあえず標準的な処理を記述しておく」こともできそう。
ただしこれはTemplate Methodとは呼ばないかも。
メリット
- 冗長なコードを減らせるため、保守性が向上する
- 類似するクラスを作成したいときに再利用しやすい
デメリット
特に思い当たらなかった。
所感
これもデザインパターンになるの?というくらい、オブジェクト指向の基本に含まれる部分だと思う。
とりあえず最初に学ぶべきデザインパターン。