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();
    }
}
相关推荐
计算机程序设计小李同学2 分钟前
基于 Spring Boot + Vue 的龙虾专营店管理系统的设计与实现
java·spring boot·后端·spring·vue
LiZhen7987 分钟前
SpringBoot 实现动态切换数据源
java·spring boot·mybatis
玄同7659 分钟前
LangChain 1.0 模型接口:多厂商集成与统一调用
开发语言·人工智能·python·langchain·知识图谱·rag·智能体
特立独行的猫a13 分钟前
C++轻量级Web框架介绍与对比:Crow与httplib
开发语言·前端·c++·crow·httplib
fie888915 分钟前
基于C#的推箱子小游戏实现
开发语言·c#
周航宇JoeZhou16 分钟前
JB2-7-HTML
java·前端·容器·html·h5·标签·表单
菜鸟小芯23 分钟前
Qt Creator 集成开发环境下载安装
开发语言·qt
JZC_xiaozhong26 分钟前
多系统权限标准不统一?企业如何实现跨平台统一权限管控
java·大数据·微服务·数据集成与应用集成·iam系统·权限治理·统一权限管理
阿猿收手吧!36 分钟前
【C++】引用类型全解析:左值、右值与万能引用
开发语言·c++
「QT(C++)开发工程师」41 分钟前
C++ 策略模式
开发语言·c++·策略模式