JAVA中的模版设计模式

一、模版设计模式能解决以下问题

1)功能内部一部分是实现的,一部分是不确定的,这时可以把不确定的部分暴露出去,让子类去实现

2)编写一个抽象父类,父类提供多个子类的通用方法,并把一个或多个方法留给子类实现,就是一种模版模式

二、代码实现

java 复制代码
package TemplateModel;

public class TemplateModel01 {
    /* 需求
    * 1.有多个类完成不同的任务*/
    public static void main(String[] args) {
        new AA().cal();
        new BB().cal();
    }
}
class AA extends Template{
    /*public void cal(){
        // 开始时间
        long start = System.currentTimeMillis();
        job();
        // 结束时间
        long end = System.currentTimeMillis();
        System.out.println("执行时间"+ (end - start));
    }*/

    public void job(){
        long n = 0;
        for (long i = 1; i < 800000; i++){
            n += i;
        }
    }
}

class BB extends Template{
    /*public void cal(){
        // 开始时间
        long start = System.currentTimeMillis();
        job();
        // 结束时间
        long end = System.currentTimeMillis();
        System.out.println("执行时间"+ (end - start));
    }*/

    public void job(){
        long n = 0;
        for (long i = 1; i < 10000000; i++){
            n += i;
        }
    }
}

// 改进方案
abstract class Template{
    public abstract void job();
    public void cal(){
        // 开始时间
        long start = System.currentTimeMillis();
        job();
        // 结束时间
        long end = System.currentTimeMillis();
        System.out.println("执行时间"+ (end - start));
    }
}
相关推荐
西安邮电大学2 分钟前
分布式锁三种实现
java·redis·后端·其他·面试
码不停蹄的玄黓5 分钟前
SpringBoot 实现自定义注解
java·spring boot·spring
时寒的笔记6 分钟前
瑞数案例欧冶解读py和js文件最终版
开发语言·javascript·ecmascript
zmzb01036 分钟前
Python课后习题训练记录Day123
开发语言·python
艾莉丝努力练剑8 分钟前
【Qt】事件
服务器·开发语言·网络·数据库·qt·tcp/ip·计算机网络
PersistJiao8 分钟前
python环境下免费、专业的中英翻译
开发语言·windows·python·机器翻译
rqtz10 分钟前
【C++】源码编译 Qt5.15.3|Ubuntu22.04 下 ROS 开发环境搭建
开发语言·c++·qt·ros
Jun62611 分钟前
QT(9)-Qjson移植
开发语言·qt
施棠海11 分钟前
自定义并可深度定制的数字滚动选择器完整源代码与相关注意事项
java·开发语言
z落落16 分钟前
C# 索引器 this[]
开发语言·c#