栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式-汽车性能测试流程-模板方法模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式-汽车性能测试流程-模板方法模式

模板方法的定义

  Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure.(定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。)

  通俗的说法其实就是我们需要创建一个抽象类,抽象类中有个普通的方法(模板方法),这个方法中是是固定的调用了其他抽象方法的步骤。

场景案例

  我们要实现不同汽车的性能测试流程,整体的流程都是要起火、汽车运行、到目的关火的流程。由于要测试不同品牌的汽车性能,所以我们要实现一个抽象汽车类,里面有抽象的start(),running(),stop()方法,不同品牌的汽车应该启动,运行,停止的方式不同。但是整体测试的流程是一致的,所以我们设计的类流程图如下所示:

代码实现

  使用模板方法模式实现对不同的品牌的汽车进行性能测试操作的流程图如下图所示:

AbstractCar.java
public abstract class AbstractCar {

    
    abstract void start();

    
    abstract void running();

    
    abstract void stop();

    public void run() {
        start();
        running();
        stop();
    }
}
BEN.java
@Slf4j
public class BEN extends AbstractCar {
    @Override
    void start() {
        log.info("BEN进行启动");
    }

    @Override
    void running() {
        log.info("BEN运行中");
    }

    @Override
    void stop() {
        log.info("BEN进行熄火");
    }
}
BMW.java
@Slf4j
public class BMW extends AbstractCar {
    @Override
    void start() {
        log.info("BMW进行启动");
    }

    @Override
    void running() {
        log.info("BMW运行中");
    }

    @Override
    void stop() {
        log.info("BMW进行熄火");
    }
}
Client.java
public class Client {
    public static void main(String[] args) {
        AbstractCar bmw = new BMW();
        bmw.run();
        AbstractCar ben = new BEN();
        ben.run();
    }
}
运行结果
13:51:03.044 [main] INFO com.example.design.muban.BMW - BMW进行启动
13:51:03.061 [main] INFO com.example.design.muban.BMW - BMW运行中
13:51:03.061 [main] INFO com.example.design.muban.BMW - BMW进行熄火
13:51:03.061 [main] INFO com.example.design.muban.BEN - BEN进行启动
13:51:03.061 [main] INFO com.example.design.muban.BEN - BEN运行中
13:51:03.061 [main] INFO com.example.design.muban.BEN - BEN进行熄火
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号