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));
    }
}
相关推荐
阿kun要赚马内几秒前
操作系统:线程与进程
java·开发语言·jvm
thulium_1 分钟前
Rust 编译错误:link.exe 未找到
开发语言·后端·rust
pupudawang3 分钟前
如何查询SQL Server数据库服务器的IP地址
java
SimonKing4 分钟前
IntelliJ IDEA 配置与插件全部迁移到其他盘,彻底释放C盘空间
java·后端·程序员
码云数智-园园4 分钟前
数据库索引的基石:深度解析 B 树与 B+ 树的差异与应用
开发语言
luojiezong5 分钟前
锐捷网络EDN方案正式发布 园区网络迈入“体验确定性交付“新时代
开发语言·网络·php
华科易迅7 分钟前
Spring 代理
java·后端·spring
我真会写代码8 分钟前
深度解析ConcurrentHashMap:从底层原理到生产实战,搞定并发安全映射(含面试避坑)
java·并发编程
liangdabiao12 分钟前
XHS_Business_Idea_Validator-小红书解析市场机会智能体
java·ide·intellij-idea
ZTLJQ17 分钟前
网络通信的基石:Python HTTP请求库完全解析
开发语言·python·http