Template Methodパターンは、決まり切っている処理を繰り返し使用することができるパターンです。
package com.example.templateMethod;
public abstract class AbstractClass {
	protected abstract void before();
	protected abstract void process();
	
	protected abstract void after();
	public final void execule() {
		before();
		process();
		after();
	}
}
package com.example.templateMethod;
public class ConcreteClass extends AbstractClass {
	public ConcreteClass() {
		
	}
	
	@Override
	protected void before() {
		
	}
	@Override
	protected void process() {
		
	}
	@Override
	protected void after() {
		
	}
}
package com.example.templateMethod;
public class Main {
	public static void main(String[] args) {
		AbstractClass process = new ConcreteClass();
		process.execule();
	}
}
このケースではbefore()→process()→after()の順に処理する、というのが決まっています。
あとは、このAbstractClassを実装する形でクラスを作成していけばよい、ということになります。
