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();
    }
}
相关推荐
励志的小陈16 小时前
贪吃蛇(C语言实现,API)
c语言·开发语言
QC班长16 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur16 小时前
java开发面试-AI Coding速成
java·开发语言
laowangpython16 小时前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
wengqidaifeng16 小时前
python启航:1.基础语法知识
开发语言·python
观北海16 小时前
Windows 平台 Python 极简 ORB-SLAM3 Demo,从零实现实时视觉定位
开发语言·python·动态规划
wuqingshun31415917 小时前
说说mybatis的缓存机制
java·缓存·mybatis
空中海17 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes
Devin~Y17 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
bLEd RING17 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java