這種模式主要是為了解決這樣一種問題,有些情況下,一個算法的流程已經(jīng)確定,但在不同情況下可能會有微小的改變,這時候我們可以借助模板,將一些步驟延遲到子類中,從而提高程序的靈活性。簡單實現(xiàn):
模板抽象類
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();
}