java常用设计模式8——模板方法模式

本文介绍了模板方法设计模式,一种确保逻辑流程不被子类修改的模式,通过实例展示了如何在游戏开发中应用此模式,保持流程稳定性并提高代码可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个设计模式应该是最简单的设计模式,因为大家平时都在使用,可能只是不知道它还是个设计模式吧

相关代码下载:

GitHub - GodisGod/DesignPatternStudy: 设计模式学习demo
https://github.com/GodisGod/DesignPatternStudy

模板方法其实就是封装一个固定的流程,就像一个模板,开头是什么,中间是什么,结尾是什么,框架都搭好,然后在这个框架内进行具体的操作,不管操作有什么区别,整体的执行流程始终不会改变。

举例:
我们玩两款游戏,这两款游戏都要经过创建角色,设置角色名字,开始游戏和通关游戏四个步骤,虽然游戏内容不尽相同,但是流程都是一样的,所以我们可以使用模板方法模式。

代码示例:

public abstract class PlayGame {
    protected void createRole() {
        Log.i("LHD", "创建角色");
    }

    protected void setName() {
        Log.i("LHD", "设置名字");
    }

    protected void startGame() {
        Log.i("LHD", "开始游戏");
    }

    protected void finishGame() {
        Log.i("LHD", "通关游戏");
    }

    public void play(){
        createRole();
        setName();
        startGame();
        finishGame();
    }

}

创建好模板以后就可以开始创建两个游戏类了:

游戏一:Heroes 
public class Heroes extends PlayGame{
    @Override
    protected void createRole() {
        Log.i("LHD","我创建了一个角色(#^.^#)");
    }
}

游戏二:Knight 
public class Knight extends PlayGame {
    @Override
    protected void createRole() {
        Log.i("LHD", "创建游戏角色");
    }
    @Override
    protected void setName() {
        Log.i("LHD", "设置角色名字");
    }
}

使用:

	Heroes heroes = new Heroes();
	heroes.play();
	Log.i("LHD", "-----------------我开始玩另一个游戏啦-----------------");
	Knight knight = new Knight();
	knight.play();

输出结果:
template

由上面的例子可以看到,不管游戏的过程有什么不同,他们的执行流程都是一样的,按照模板设置的流程走的。
通过模板方法模式,我们就可以保证逻辑流程不会被子类修改,子类只能够改变其中某一个步骤的具体实现而已,这样就可以保证逻辑流程的稳定性和提高可维护性。

在Android源码中,典型的模板方法模式就是我们的Activity生命周期啦,相信大家一看就明白。
这个设计模式不仅非常简单,而且也是非常重要和经常使用的一种设计模式。

以上就是模板方法设计模式的简单介绍啦(#^ . ^#)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值