码迷,mamicode.com
首页 > 其他好文 > 详细

模板方法模式

时间:2015-07-03 22:08:20      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:java设计模式   设计模式   模板方法模式   

/**
    设计模式之------模板方法模式:
    定义一个获取程序运行的时间的方法,要求可以实现任何一个程序运行时,
    获得该程序的时间。
    
    首先获取程序运行时间的方法不变及getTime(),变化的是要运行的程序runCode()。
    那么可以定义一个抽象类,抽象类中用final修饰getTime(),用abstract修饰runCode().

    再定义子类继承该抽象类,对runCode()进行覆写。实现获取不同程序运行的时间。

将不确定的方法暴漏出来,让子类去覆写。

    
    比较正式的概念:
    1)模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。
    在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。
    2)在模板方法模式中,我们需要准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,
        然后声明一些抽象方法来让子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑
        有不同的实现,这就是模板方法模式的用意。模板方法模式体现了面向对象的诸多重要思想,是一种使用频率较高的模式。
*/
abstract class GetTime{
    public final void getTime(String className){
        long start = System.currentTimeMillis();
        runCode();
        long end = System.currentTimeMillis();
        System.out.println(className+" run time is"+(end-start));
    }
    public abstract void runCode();
}
class SubTime extends GetTime{
    public void runCode(){
        for(int i=0;i<1000;i++){
        //    System.out.print(i);
        }
    }
}
class WhileTime extends GetTime{
    public void runCode(){
        int i=0;
        while(i<=1000){
            i++;
    //    System.out.print(i);
        }
    }
}
public class Template{
    public static void main(String []args){
        SubTime st = new SubTime();
        st.getTime("st");
        WhileTime wt = new WhileTime();
        st.getTime("wt");
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

模板方法模式

标签:java设计模式   设计模式   模板方法模式   

原文地址:http://blog.csdn.net/u011521890/article/details/46745595

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!