java設計模式-模板方法(方法回調,鉤子函數)

什麼叫模版方法模式:
模版方法其實就是父類定義了一整套的骨架流程,而其中的某些方法,需要子類來完成,這樣子的好處是,方法流程已經定義好,子類要做的事情就是按着流程和模版自己寫實現。

開發中的模版方法模式:
1.spring data中的jdbcTemp
2.junit測試
3.數據庫的訪問封裝

模版方法模式例子:
這裏實現的場景是用戶去吃飯,首先是團購,然後到飯店吃飯,最後在美團點評,其中到飯店吃飯,需要用戶自己起身到飯店吃飯

public abstract class DinnerTemplate {

    private void tuangou() {
        System.out.println("團購");
    }

    abstract void haveDinner();

    private void pingjia() {

        System.out.println("評價");
    }

    public void process(){
        tuangou();
        haveDinner();
        pingjia();
    }

}

class WesternStyleFood extends DinnerTemplate {

    @Override
    protected void haveDinner() {
        System.out.println("吃西餐");
    }

}

class ChineseStyleFood extends DinnerTemplate {

    @Override
    protected void haveDinner() {
        System.out.println("吃中餐");
    }

}

這裏我們定義了process方法,裏面定義了處理的流程過程,客戶端,只需要調用這個流程即可,而haveDinner,就由具體的用戶自己去實現

public class Client {

    public static void main(String[] args) {
        DinnerTemplate  westernStyleFood = new WesternStyleFood();
        DinnerTemplate  chineseStyleFood = new ChineseStyleFood();

        westernStyleFood.process();
        chineseStyleFood.process();     
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章