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 分钟前
基于Go语言的企业级CMS系统架构设计与性能分析——以AnQiCMS为例
开发语言·golang·系统架构
早日退休!!!22 分钟前
大模型推理瓶颈七层分析模型
java·服务器·数据库
叶小鸡39 分钟前
Java 篇-项目实战-天机学堂(从0到1)-day9
java·开发语言
小短腿的代码世界42 分钟前
Qt券商接口封装深度解析:统一API设计与多源适配
开发语言·qt·单元测试
wearegogog12344 分钟前
基于Q-learning的栅格地图路径规划MATLAB仿真程序
开发语言·算法·matlab
@#¥&~是乱码鱼啦1 小时前
Spring分层架构:Controller、Service、Mapper数据链路,IOC的真实工作意义
java·spring·架构
xieliyu.1 小时前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
csbysj20201 小时前
Java 条件语句
开发语言
薪火铺子1 小时前
SpringMVC请求处理流程源码解析(第3篇):视图渲染与异常处理
java·后端·spring
Ulyanov2 小时前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》 开发环境搭建与工具链极简主义 —— 拒绝臃肿,构建工业级基座
开发语言·python·qt·ui·架构·系统仿真