デザインパターン > テンプレートメソッド(Template Method) テンプレートメソッド(Template Method) †共通の流れで処理を行うロジッックをいくつも作る場合に利用できるパターン。 テンプレートメソッドを利用しない場合 †処理1 public class HogeLogic1 { public void execute(args) { procInit(); procMain(); procEnd(); } /** 初期処理 */ private void procInit(){ ・ ・ } /** メイン処理 */ private void procMain(){ ・ ・ } /** 終了処理 */ private void procEnd(){ ・ ・ } } 処理2 public class HogeLogic2 { public void execute(args) { procInit(); procMain(); procEnd(); } /** 初期処理 */ private void procInit(){ ・ ・ } /** メイン処理 */ private void procMain(){ ・ ・ } /** 終了処理 */ private void procEnd(){ ・ ・ } } テンプレートメソッドを利用した場合 †親クラス public class BaseLogic { public void execute(args) { procInit(); procMain(); procEnd(); } /** 共通で行う初期処理 */ protected void procInit(){ ・ ・ } /** メイン処理 */ abstract protected void procMain(); /** 共通で行う終了処理 */ protected void procEnd(){ ・ ・ } } 処理1 public class HogeLogic extends BaseLogic { /** メイン処理 */ protected void procMain(){ ・ ・ } } 処理2 public class HogeLogic extends BaseLogic { /** メイン処理 */ protected void procMain(){ ・ ・ } } |