テンプレートメソッドパターン


階層構造をトップダウン的に見る典型的な技法をテンプレートメソッドパターンと呼びます。

abstract class Animal {
protected abtstract void call(); //オーバーライドすべき処理
void greet() {
//共通処理
call(); // 継承クラス固有の処理を呼び出す
// 共通処理
}
}
class Dog extends Animal {
@Override
protected void call() {
System.out.println("Waoon!"); // 継承クラスに固有の処理
}
}
class Cat extends Animal {
@Override
protected void call() {
System.out.println("Nyaoon!"); // 継承クラスに固有の処理
}
}

Animalに骨格となる実装を行い、DogCatに固有の処理を実装します。
メソッドの呼び出しのコードを変えることなく、固有処理の実装を切り替えることができます。

🐠 テンプレートメソッドパターンのポイント

抽象基底クラスに変わらない部分を書き、継承クラスに変わりやすい実装を書くことで、
大規模プログラムの実装をサポートします。

🍣 参考リンク

📚 おすすめの書籍