文檔查閱說明:
定義:定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟
使用場景:
● 有多個子類共有的方法,且邏輯相同;
● 重要的、複雜的方法,可以考慮作爲模板方法
注意事項:爲防止惡意操作,一般模板方法都加上 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();
}
}