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 分钟前
Python Socket
开发语言·python
码农水水5 分钟前
京东Java面试被问:系统限流的实现方式
java·开发语言·面试
Sheep Shaun10 分钟前
STL中的map和set:红黑树的优雅应用
开发语言·数据结构·c++·后端·c#
宁大小白12 分钟前
pythonstudy Day45
开发语言·python·深度学习
宁晓16 分钟前
单表配置多级类型,按名称模糊筛选
java·后端
阿波罗尼亚18 分钟前
Head First设计模式(十四) 设计原则 其他的模式
设计模式
Yu_iChan25 分钟前
Day03 公共字段填充与菜品管理
java·开发语言
独自破碎E27 分钟前
如何防止接口被恶意刷量?
java·开发语言
期待のcode39 分钟前
Java的单例模式
java·开发语言·单例模式
断春风41 分钟前
从 JDK 8 到 JDK 21:企业级 Java 版本选择的架构思考
java·架构·jdk