模板方法模式
定義:
定義一個操作中的算法骨架,而將一些步驟延伸到子類中去,使得子類可以不改變一個算法的結構,即可重新定義該算法的某些特定步驟。這里需要復用的是算法的結構,也是步驟,而步驟的實現可以在子類中完成;
構成:
父類角色:提供模板;
子類角色:為模板提供實現;
java代碼實現:
public abstract class Template {
//定義執行步驟,每個步驟的具體實現由子類完成
public void method() {
this.step1();
this.step2();
this.step3();
}
protected abstract void step1();
protected abstract void step2();
protected abstract void step3();
}
public class ConcreteTemplate extends Template {
@Override
protected void step1() {
System.out.println("ConcreteTemplate.step1()");
}
@Override
protected void step2() {
System.out.println("ConcreteTemplate.step2()");
}
@Override
protected void step3() {
System.out.println("ConcreteTemplate.step3()");
}
}
public class Client {
public static void main(String[] args) {
Template template = new ConcreteTemplate();
template.method();
}
}