Java中模板模式怎么用

发布时间:2022-02-28 09:18:30 作者:小新
来源:亿速云 阅读:156

小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

优点

封装不变部分,扩展可变部分。

提取公共代码,便于维护。

行为由父类控制,子类实现。

缺点

每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

使用场景

1.有多个子类共有的方法,且逻辑相同。

2.重要的、复杂的方法,可以考虑作为模板方法。

一、实现方式

假设一个场景,我们在玩游戏的时候,都需要初始化加载游戏,然后开始游戏,最后结束游戏,这像是一套模板一样的操作,但是具体的实现方法却不同,例如:LOL 游戏与 CF 游戏的加载资源肯定不同,游戏的内容也不同。

1、游戏抽象类

package com.asurplus.common.template;
/**
 * 游戏抽象类
 */
public abstract class Game {
    // 初始化游戏
    abstract void init();
    // 开始游戏
    abstract void start();
    // 结束游戏
    abstract void end();
    // 模板
    public final void play() {
        // 初始化游戏
        init();
        // 开始游戏
        start();
        // 结束游戏
        end();
    }
}

2、LOL游戏类

package com.asurplus.common.template;
import lombok.extern.slf4j.Slf4j;
/**
 * LOL游戏
 */
@Slf4j
public class LolGame extends Game {
    @Override
    void init() {
        log.info("初始化 LOL 游戏");
    }
    @Override
    void start() {
        log.info("LOL 游戏开始");
    }
    @Override
    void end() {
        log.info("LOL 游戏结束");
    }
}

3、CF游戏类

package com.asurplus.common.template;
import lombok.extern.slf4j.Slf4j;
/**
 * CF游戏
 */
@Slf4j
public class CfGame extends Game {
    @Override
    void init() {
        log.info("初始化 CF 游戏");
    }
    @Override
    void start() {
        log.info("CF 游戏开始");
    }
    @Override
    void end() {
        log.info("CF 游戏结束");
    }
}

二、测试

package com.asurplus.common.template;

/**
 * 模板模式
 */
public class TestMain {
    public static void main(String[] args) {
        // LOL 游戏
        Game lolGame = new LolGame();
        lolGame.play();
        System.out.println();
        // CF 游戏
        Game cfGame = new CfGame();
        cfGame.play();
    }
}

输出结果

Java中模板模式怎么用

可以看出,一套模板,可以有多个实现方式,从而实现了我们的工厂模式。

看完了这篇文章,相信你对“Java中模板模式怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. PHP 之模板模式
  2. 设计模式之生活中的模板模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:controller中如何调用多个service方法

下一篇:SSM怎么实现在Controller中添加事务管理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》