首页 > 编程语言 >Java-抽象模板模式

Java-抽象模板模式

时间:2022-11-02 18:22:11浏览次数:46  
标签:Java 子类 void job num 抽象 public 模板

什么是模板模式?

    定义程序的骨架,而将一些步骤延迟到子类中。模板模式使得子类可以不需要改变程序的结构即可重定义该程序的某些特定步骤。   

    通俗的讲,模板方法模式是通过把不变行为搬到父类,去除子类中的重复代码,它提供了一个很好的代码复用平台。当不可变和可变的方法在子类中混合在一起的时候,不变的方法就会在子类中多次出现。

实现步骤

    1.提取公共的属性和方法到父类,将需要改变的地方定义为抽象方法

     2.定义子类继承父类,实现其抽象方法。

代码实现

public abstract class Template {
    public abstract void job();   //抽象方法

    public void calculateTime(){
        //得到开始时间
        long start = System.currentTimeMillis();
        job();
        //得到结束时间
        long end = System.currentTimeMillis();
        System.out.println("任务执行时间为:"+(end - start));
    }
}
public class AA extends Template {
    @Override
    public void job() {
        long num = 0;
        for (int i = 0; i < 80000; i++) {
            num+=i;
        }
    }
}
public class BB extends Template{
    @Override
    public void job() {
        long num = 0;
        for (int i = 0; i < 80000; i++) {
            num+=i;
        }
    }
}
public class TestTemplate {
    public static void main(String[] args) {
        AA aa = new AA();
        aa.calculateTime();

        BB bb = new BB();
        bb.calculateTime();
    }
}

运行结果

  

 

标签:Java,子类,void,job,num,抽象,public,模板
From: https://www.cnblogs.com/dbcxy/p/16851877.html

相关文章

  • 增加vue模板快捷键,以及方法注释快捷键的总结
    一、Vscode配置1、进入首选项=>用户配置代码片段=>javascript{ "Printtozhushi":{ "prefix":"zhushi", "body":[ "<!--", "*@Description:$0", "*@Auth......
  • JAVA中的堆栈数据存储
    结论引用类型,总是储存在堆上(数组同样属于引用类型,只不过他是使用c实现的);基础类型,在方法中的局部变量储存在栈,对象实例中的实例字段则随对象一同存储在堆上;线程享有自......
  • JavaWeb期中考试-2021年版(一)
    终于轮到了我自己的期中考试,总体来说本次的期中考试并不难,和19年的期中考试可以说是一模一样,以下要提醒的是,程序在我的电脑上是没什么问题,但是有些配置原因可能在别的设备......
  • JavaWeb之Servlet1
    Servlet方法初始化方法,在Servlet被创建时执行,只执行一次voidinit(ServletConfigconfig)提供服务方法,每次Servlet被访问,都会调用该方法voidservice(ServletRequestr......
  • java关于加密key保存乱码问题
    当我们无论使用对称加密还是非对称加密都会涉及到key,随机生成的key一般是byte[]类型,通过String进行保存的时候就会出现无法识别问题,并且读取后无法识别问题。这个时候通过......
  • JavaWeb期中考试-2019年版总结
    关于这次2019年期中考试的练习,我想对它进行一个总结,首先,对于完全没有接触过javaweb的我来说,只是在课上听建民老师提了一下要做这个东西,因此在一开始只是先学着怎么画html......
  • JAVA++:HashMap无序?TreeMap有序?
    书上说HashMap是无序的,TreeMap是有序的(有序无序是针对key的),但是实际去敲的时候发现不是这样,有时HashMap是有序的,有时TreeMap是无序的。于是就做了以下测试来探究:......
  • java EE开发之Servlet第四课:监听器(Listener)
     1.什么是Listener监听器就像老板的秘书,那个秘书就是活的监听器,时时监听着老板,当老板发生一些事情的时候,秘书就会有相应的措施。比如老板口渴了,秘书就会去端茶;比如老板要......
  • JavaWeb期中考试-2019年版(六)
    本次是JavaWeb期中考试最后一个部分,系统更新和数据显示的代码分享首先是updateq.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncodi......
  • java.lang.ClassCastException: Ljava.lang.Object; cannot be cast to com.entity.XX
    以下为大神的经验:今天一不小心就碰到了这样的问题,以前从来没有碰到过,在网上搜了很多办法,思路正确,但是还是要根据自己的程序改变。 一开始写的是hql语句进行统计每个月......