文档查阅说明:
定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
使用场景:
● 有多个子类共有的方法,且逻辑相同;
● 重要的、复杂的方法,可以考虑作为模板方法
注意事项:为防止恶意操作,一般模板方法都加上 final 关键词
public abstract class AbstractClass {
public abstract void primitiveOperationA();
public abstract void primitiveOperationB();
public final void templateMethod() {
primitiveOperationA();
primitiveOperationB();
}
}
public class ConCreateClassA extends AbstractClass {
@Override
public void primitiveOperationA() {
System.out.println("具体类A方法A实现");
}
@Override
public void primitiveOperationB() {
System.out.println("具体类A方法B实现");
}
}
public class ConCreateClassB extends AbstractClass {
@Override
public void primitiveOperationA() {
System.out.println("具体类B方法A实现");
}
@Override
public void primitiveOperationB() {
System.out.println("具体类B方法B实现");
}
}
public class Test {
public static void main(String[] args) {
AbstractClass abstractClass;
abstractClass = new ConCreateClassA();
abstractClass.templateMethod();
abstractClass = new ConCreateClassB();
abstractClass.templateMethod();
}
}