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();
    }
}
相关推荐
WaWaJie_Ngen4 小时前
【设计模式】外观模式/门面模式(Facaed)
设计模式·外观模式
Asort4 小时前
JavaScript设计模式(十九)——观察者模式 (Observer)
前端·javascript·设计模式
沙虫一号4 小时前
聊聊Java里的那把锁:ReentrantLock到底有多强大?
java
无心水5 小时前
Java主流锁全解析:从分类到实践
java·面试·架构
云知谷5 小时前
【经典书籍】《编写可读代码的艺术》精华
开发语言·c++·软件工程·团队开发
空空kkk5 小时前
Java——接口
java·开发语言·python
MaxHua5 小时前
JAVA开发处理金额的数据类型你知道多少?
java·后端
围巾哥萧尘5 小时前
英语老师的秘密武器:Trae智能体写作批改智能体 (改作文一条龙)🧣
设计模式
oak隔壁找我5 小时前
公司级 Maven Parent POM 设计指南
java·后端