• day03模板方法设计模式


    /*
    模板方法设计模式
    例子:
    需求:获取一段程序的运行的时间
    原理:获取一段程序的开始时间和结束时间并相减
    获取时间的方法:System.currentTimeMillis();

    但代码优化后,就发现有一部分的方法不愿意复写的话就final它
    还有一部分不确定就把它抽象abstract让子类去复写
    但要是不确定的部分也有主体的话就不能用abstract 也要让子类去复写;

    这种方式就叫做模板方法设计模式
    定义:在定义功能时,功能的一部分确定,但是一部分不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。

    */
    abstract class GetTime
    {
    public final void getTime()//不允许子类去复写这个方法
    {
    long start = System.currentTimeMillis();
    runcode();//调用该方法
    long end = System.currentTimeMillis();
    System.out.println("毫秒数="+(end-start));
    }
    public abstract void runcode();//抽象这个方法,让子类去复写它
    }
    class RunCode extends GetTime //如果运行的时间不同
    { public void runcode()//复写这个方法
    {for (int x=0;x<1000 ;x++ )//让程序运行的时间
    {
    System.out.print(x);
    }
    }
    }
    class TemplateDemo
    {
    public static void main(String [] args)
    {
    new RunCode().getTime();//让子类去调用父类中的方法但自己去复写程序运行的时间
    }
    }

  • 相关阅读:
    五种IO模型透彻分析
    linux正则表达式
    洛谷P1242 新汉诺塔 【神奇的递归】
    【NOIP2012】疫情控制
    [ZJOI2007]棋盘制作 【最大同色矩形】
    [NOIP2008]双栈排序 【二分图 + 模拟】
    LCA的倍增算法
    最大权闭合子图
    小Z的袜子 题解报告【莫队】
    ZJOI2012网络 题解报告【LCT】
  • 原文地址:https://www.cnblogs.com/secretmonster/p/8686591.html
Copyright © 2020-2023  润新知