Java的抽象类实践-模板设计模式

需求:

1)有多个类,完成不同的任务job

2)要求能够统计得到各自完成任务的时间

最佳实践:

设计一个抽象类(Template),能完成如下功能:

1)编写方法calculateTime(),可以计算某段代码的耗时时间

2)编写抽象方法job()

3)编写一个子类Sub,继承抽象类Template,并实现job方法

4)测试类TestTemplate

java 复制代码
package com.abstract_;

abstract public class Template {//抽象父类
    public void calcuteTime(){
        long start = System.currentTimeMillis();//得到开始的时间
        job();
        long end = System.currentTimeMillis();//得到结束时间
        System.out.println("执行时间为" + (end - start));
    }
    abstract public void job();//抽象方法
}

AA和BB类分别完成两个不同的任务

java 复制代码
package com.abstract_;

public class AA extends Template{
    //计算任务
    //1+...+10000
    public void job(){//实现父类的抽象方法
        int num = 0;
        for (int i = 0; i <= 1000000; i++) {
            num += i;
        }

    }

}
java 复制代码
package com.abstract_;

public class BB extends Template{
    //计算任务
    //1+...+10000
    public void job(){
        int num = 0;
        for (int i = 0; i <= 8000000; i++) {
            num *= i;
        }
    }
}

测试:

java 复制代码
package com.abstract_;

public class TestTemplate {
    public static void main(String[] args) {
        AA aa = new AA();
        aa.calcuteTime();

        BB bb = new BB();
        bb.calcuteTime();
    }
}
相关推荐
吴声子夜歌4 分钟前
Java——定时任务
java
吴声子夜歌15 分钟前
Java——原子变量和CAS
java·cas
野生技术架构师17 分钟前
2026最新Java面试八股文天花板(含详细解析)
java·jvm·spring
kkeeper~19 分钟前
0基础C语言积跬步之深入理解指针(4)
c语言·开发语言
小碗羊肉31 分钟前
【JavaWeb | 第十二篇】项目实战——登录功能
java·前端·数据库
周末也要写八哥36 分钟前
在C++中使用预定义宏
开发语言·c++·算法
喜欢小苹果的码农42 分钟前
Java动态定时任务
java
Data_Journal1 小时前
使用Python lxml轻松进行网络爬取
开发语言·php
xcLeigh1 小时前
IoTDB JDBC 完整使用教程:连接、查询、批处理与字符集配置
开发语言·数据库·qt·iotdb·查询·批处理·连接
学会870上岸华师1 小时前
C 语言程序设计——第一章课后编程题
c语言·开发语言·学习·算法