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));
    }
}
相关推荐
张人玉15 分钟前
C# 通讯关键类的API
开发语言·c#
@大迁世界17 分钟前
Vue 设计模式 实战指南
前端·javascript·vue.js·设计模式·ecmascript
EnCi Zheng19 分钟前
@ResponseStatus 注解详解
java·spring boot·后端
froginwe1119 分钟前
R 数组:深入解析与高效使用
开发语言
tao35566723 分钟前
【Python刷力扣hot100】283. Move Zeroes
开发语言·python·leetcode
wdfk_prog32 分钟前
闹钟定时器(Alarm Timer)初始化:构建可挂起的定时器基础框架
java·linux·数据库
progalchemist40 分钟前
Quick SwiftObjective-C测试框架入门教程
开发语言·其他·objective-c·swift
怎么没有名字注册了啊43 分钟前
C++后台进程
java·c++·算法
z日火1 小时前
Java 泛型
java·开发语言