设计模式-模板模式

步骤1

抽象模板结构

public abstract class TencentGame {
        //添加final关键字,防止子类覆盖此方法修改流程
    public final void play() {
        showLogo();
        init();
        startPlay();
        endPlay();
    }
    
    void showLogo() {
        System.out.println("显示腾讯游戏Logo");
    }

    abstract void init();

    abstract void startPlay();

    abstract void endPlay();
}

步骤2

具体模板

//FPS类型游戏
public class FPSGame extends TencentGame {

    @Override
    void init() {
        System.out.println("初始化FPS游戏");
    }

    @Override
    void startPlay() {
        System.out.println("开始玩FPS游戏");
    }

    @Override
    void endPlay() {
        System.out.println("结束FPS游戏");
    }

}

//RGP类型游戏
public class RGPGame extends TencentGame {

    @Override
    void init() {
        System.out.println("初始化RGP游戏");
    }

    @Override
    void startPlay() {
        System.out.println("开始玩RGP游戏");
    }

    @Override
    void endPlay() {
        System.out.println("结束RGP游戏");
    }

}

步骤3

测试

TencentGame game = new FPSGame();
game.play();
System.out.println("---------------");
TencentGame game2 = new RGPGame();
game2.play();

输出

显示腾讯游戏Logo
初始化FPS游戏
开始玩FPS游戏
结束FPS游戏
---------------
显示腾讯游戏Logo
初始化RGP游戏
开始玩RGP游戏
结束RGP游戏
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、概念介绍模版方法模式的结构 定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即...
    William8阅读 3,192评论 0 1
  • 什么是模板模式 定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算...
    元涛阅读 3,532评论 0 1
  • 1.模板模式的定义及使用场景定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即...
    GB_speak阅读 4,093评论 0 0
  • 一、概念 将算法通用部分抽象出来,延迟到子类实现 1.1、定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类...
    双鱼子曰1987阅读 2,707评论 0 0
  • 12月休假去北京玩,顺便去了一趟空总看皮肤,上班以来皮肤角质层日益变薄爆痘是常态,想说去一下全国数一数二的皮肤科看...
    ceciliayiyi阅读 851评论 0 0