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));
    }
}
相关推荐
Ayu阿予几秒前
C++从源文件到可执行文件的过程
开发语言·c++
C++业余爱好者1 分钟前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
福尔摩斯张2 分钟前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp
Trouvaille ~7 分钟前
【Java篇】基石与蓝图::Object 类与抽象类的双重奏
java·开发语言·javase·抽象类·类与对象·基础入门·object类
卜锦元8 分钟前
Golang中make()和new()的区别与作用?
开发语言·后端·golang
小光学长10 分钟前
基于ssm的美妆产品推荐系统rah0h134(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring
Light6019 分钟前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言
中文很快乐20 分钟前
从零到一:用 SpringBoot 打造 RESTful API 实战指南
java·spring boot·后端·restful
泉城老铁21 分钟前
springboot+redis 如何实现订单的过期
java·后端·架构
guygg8821 分钟前
基于Matlab的压缩感知信道估计算法实现
开发语言·算法·matlab