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();
    }
}
相关推荐
张np2 分钟前
java基础-ArrayList
java·开发语言
Swizard3 分钟前
别让 AI 假装在工作:Android "Vibe Coding" 的生存指南
android·java·vibe coding
BBB努力学习程序设计11 分钟前
Java集合框架:管理数据的"超级工具箱"
java
zmzb010322 分钟前
C++课后习题训练记录Day42
开发语言·c++·算法
库库林_沙琪马26 分钟前
1、Hi~ SpringBoot
java·spring boot·后端
不会编程的小寒26 分钟前
C / C++ 面试题
java·开发语言
坐吃山猪29 分钟前
Electron02-Hello
开发语言·javascript·ecmascript
BBB努力学习程序设计29 分钟前
Java输入输出:让程序能与世界“对话”
java
Mr Lee_30 分钟前
Smali 文件生成dex装箱算法整合
开发语言·python·算法
电饭叔31 分钟前
《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之一(Luhn算法解释)
android·java·python