模板方法模式1

来源:互联网 发布:开淘宝没货源怎么办 编辑:程序博客网 时间:2024/06/10 16:30
/** * @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(每次执行结果或许不同)

模板方法模式其实是利用抽象类来设计程序的骨架,将具体的部分留给子类实现,调用父类的方法运行子类实现的方法并完成一些额外的功能,如打印消耗时间等

原创粉丝点击