//抽象模版类
public abstract class AbstractClass{
//基本方法
protected abstract void doSomething();
//基本方法
protected abstract void doAnything();
//模版方法
public void templateMethod(){
/*
*调用基本方法完成相关逻辑
*/
this.doAnything();
this.doSomething();
}
}
//具体模版类
public class ConcreteClass1 extends AbstractClass{
//实现基本方法
protected void doAnything(){
//业务逻辑处理
}
protected void doSomething(){
//业务逻辑处理
}
}
public class ConcreteClass2 extends AbstractClass{
//实现基本方法
protected void doAnything(){
//业务逻辑处理
}
protected void doSomething(){
//业务逻辑处理
}
}
//场景类
public class Client{
public static void main(String[] args){
AbstractClass class1 = new ConcreteClass1();
AbstractClass class2 = new ConcreteClass2();
//调用模版方法
class1.templateMethod();
class2.templateMethod();
}
}