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 分钟前
python基础
开发语言·python
筑梦之路4 分钟前
Jenkins 构建部署多模块Java应用流水线参考——筑梦之路
java·运维·jenkins
shayudiandian7 分钟前
【Java】常用类
java
雨中飘荡的记忆10 分钟前
MyBatis类型处理模块详解
java·mybatis
金牌归来发现妻女流落街头10 分钟前
【线程池 + Socket 服务器】
java·运维·服务器·多线程
wanghowie11 分钟前
01.03 Spring核心|事务管理实战
java·后端·spring
Chen不旧12 分钟前
Java模拟死锁
java·开发语言·synchronized·reentrantlock·死锁
千寻技术帮13 分钟前
10356_基于Springboot的老年人管理系统
java·spring boot·后端·vue·老年人
最贪吃的虎14 分钟前
Redis 除了缓存,还能干什么?
java·数据库·redis·后端·缓存
菩提树下的凡夫20 分钟前
如何将python的程序py文件转换为exe程序
开发语言·python