1. 程式人生 > >二、 抽象類延伸出的模板設計模式

二、 抽象類延伸出的模板設計模式

pro 頂級 pri bsp 抽象類 pub 代碼 AC method

具體可參考:https://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html

模板設計模式的關鍵:子類可以置換掉父類的可變部分,但是子類卻不可以改變模板方法所代表的頂級邏輯

示例:

public abstract class AbstractTemplate {
    
    /**
     * 模板方法
     */
    public void templateMethod() {
        // 調用基本方法
        abstractMethod();
        hookMethod();
        concreteMethod();
    }

    
/** * 抽象方法(由子類實現) */ protected abstract void abstractMethod(); /** * 基本方法(由子類重寫) */ protected void hookMethod() { } /** * 具體方法(抽象類實現) */ private final void concreteMethod() { // 業務相關的代碼 } }

二、 抽象類延伸出的模板設計模式