模板方法:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类必须重定义该算法的某些特定步骤
//抽象模板
public abstract class AbstractTemplate {
//基本方法1
protected abstract void doSomething();
//基本方法2
protected abstract void doAnything();
//模板方法
public void templateMethod(){
this.doSomething();
this.doAnything();
}
}
public class Template1 extends AbstractTemplate {
//实现基本方法1
protected void doSomething(){
//doSomething
}
//实现基本方法2
protected void doAnything(){
//doAnything
}
}
public class Template2 extends AbstractTemplate {
//实现基本方法1
protected void doSomething(){
//doSomething
}
//实现基本方法2
protected void doAnything(){
//doAnything
}
}
public class Main {
public static void main(String[] args) {
AbstractTemplate t1 = new Template1();
AbstractTemplate t2 = new Template2();
//调用模板方法
t1.templateMethod();
t2.templateMethod();
}
}