这种模式主要是为了解决这样一种问题,有些情况下,一个算法的流程已经确定,但在不同情况下可能会有微小的改变,这时候我们可以借助模板,将一些步骤延迟到子类中,从而提高程序的灵活性。简单实现:
模板抽象类
public abstract class Template {
public void step1(){
System.out.println("step1 run...");
}
public void step2(){
System.out.println("step2 run...");
}
public void step3(){
System.out.println("step3 run...");
}
public void run(){
step1();
step2();
step3();
}
}
具体子类
public class Product1 extends Template{
@Override
public void step1() {
System.out.println("product1 step1 run ...");
}
}
public class Product2 extends Template{
@Override
public void step3() {
System.out.println("product2 step3 run ...");
}
}
测试类·
public static void main(String[] args) {
new Product1().run();
new Product2().run();
}