模板方法模式1

/**
 * @author 
 * @version 0.1
 * 模板設計模式 -- 時間消耗模板
 *        使用該模板測試方法的運行時間
 */
public abstract class TimeExpendTemplate {
    //創建抽象方法,在子類中具體實現
    public abstract void method();

    /**
     * 創建執行模板,在控制檯輸出執行method()消耗的時間
     */
    public void runMethod(){
        Long t1 = System.currentTimeMillis();
        method();
        Long t2 = System.currentTimeMillis();
        System.out.println(t2-t1);
    }
}


/**
 * 創建TimeExpendTemplateTest類繼承TimeExpendTemplate模板,
 * 重寫method的方法,實例化後調用父類的runMethod方法,
 * 在控制檯輸出method方法運行消耗的時間
 * @author 
 * @version 0.1
 */
public class TimeExpendTemplateTest extends TimeExpendTemplate {

    public int getValue(int i){
        if(i == 0){
            return 0;
        }
        if (i == 1){
            return 1;
        }
        return getValue(i-1)+getValue(i-2);
    }

    /**
     * 重寫父類method方法
     */
    @Override
    public void method() {
        getValue(45);
    }

    public static void main(String[] args) {
        TimeExpendTemplate t = new TimeExpendTemplateTest();
        //調用模板中的runMethod方法
        t.runMethod();
    }
}
運行結果:9137(每次執行結果或許不同)

模板方法模式其實是利用抽象類來設計程序的骨架,將具體的部分留給子類實現,調用父類的方法運行子類實現的方法並完成一些額外的功能,如打印消耗時間等

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