java_抽象类最佳实践-模板设计模式

基本介绍

模板设计模式可解决的问题

最佳实践



Template类

java 复制代码
package com.hspedu.abstract_;
abstract public class Template { //抽象类-模板设计模式
    public abstract void job();//抽象方法
    public void calculateTime() {//实现方法,调用 job 方法
        //得到开始的时间
        long start = System.currentTimeMillis();
        job(); //动态绑定机制
        //得的结束的时间
        long end = System.currentTimeMillis();
        System.out.println("任务执行时间 " + (end - start));
    }
}

AA类

java 复制代码
package com.hspedu.abstract_;

public class AA extends Template {
    //计算任务
//1+....+ 800000
    @Override
    public void job() { //实现 Template 的抽象方法 job
        long num = 0;
        for (long i = 1; i <= 800000; i++) {
            num += i;
        }
    }
}

BB类

java 复制代码
package com.hspedu.abstract_;
public class BB extends Template{
    public void job() {//这里也去,重写了 Template 的 job 方法
        long num = 0;
        for (long i = 1; i <= 80000; i++) {
            num *= i;
        }
    }
}

TestTemplate类

java 复制代码
package com.hspedu.abstract_;

public class TestTemplate {
    public static void main(String[] args) {
        AA aa = new AA();
        aa.calculateTime(); //这里还是需要有良好的 OOP 基础,对多态
        BB bb = new BB();
        bb.calculateTime();
    }
}
相关推荐
小雅痞6 分钟前
[Java][Leetcode hard] 42. 接雨水
java·开发语言·leetcode
xfcoding6 分钟前
关于代码注释的思考
java
We་ct9 分钟前
AI辅助开发术语体系深度剖析
开发语言·前端·人工智能·ai·ai编程
t***54410 分钟前
Dev-C++中哪些选项可以设置
开发语言·c++
輕華19 分钟前
PyQt5入门实战:安装、QtDesigner设计与PyUIC转换完整指南
开发语言·qt
虹梦未来19 分钟前
【开发心得】在SpringBoot体系中正确使用redisConfig
java·spring boot·spring
skiy19 分钟前
Spring Framework 中文官方文档
java·后端·spring
AI大法师28 分钟前
复盘 TikTok 品牌升级:动态品牌系统应该怎么理解和落地
大数据·人工智能·设计模式
xifangge202535 分钟前
【故障排查】IDEA 打开 Java 文件没有运行按钮(Run)?深度解析项目标识与环境配置的 3 大底层坑点
java·ide·intellij-idea
麻辣璐璐36 分钟前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓