第3回目 Template Methodパターン
概要
Template Methodパターンは、そのような「似たような流れの処理」をスーパークラスで共通化し、「固有の処理」をサブクラスにまかせることで、「処理のテンプレート」を作成するパターンです。
サンプル
Batch.java
public abstract class Batch {
public abstract void prepare();
public abstract void execute();
public abstract void finish();
public final void run() {
prepare();
execute();
finish();
}
}
BatchA.java
public class BatchA extends Batch {
public void prepare() {
System.out.println(“BatchA用の前処理”);
}
public void execute() {
System.out.println(“BatchA用の処理本体”);
}
public void finish() {
System.out.println(“BatchA用の後処理”);
}
}
BatchB.java
public class BatchB extends Batch {
public void prepare() {
System.out.println(“BatchB用の前処理”);
}
public void execute() {
System.out.println(“BatchB用の処理本体”);
}
public void finish() {
System.out.println(“BatchB用の後処理”);
}
}
Main.java
public class Main {
public static void main(String[] args){
Batch target = new BatchA();
target.run();
Batch target = new BatchB();
target.run();
}
}
結果
BatchA用の前処理
BatchA用の処理本体
BatchA用の後処理
BatchB用の前処理
BatchB用の処理本体
BatchB用の後処理