命令模式坦克大战简单实现(java实现)

本文通过坦克大战游戏案例,详细解析了命令模式的实现方法及其应用场景。文章介绍了如何利用命令模式简化对象之间的交互,并展示了具体的Java代码实现。

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

目录:一个实例讲完23种设计模式

当前:命令模式

关于模式的综合运用:

1.《策略模式和职责链模式实现坦克大战2》

2.《策略模式和职责链模式实现坦克大战》,也用到了命令模式的只不过没有在类图中画

需求:坦克大战

创建两种坦克

坦克类型射程速度
b7070米时/70公里
b5050米时/70公里

类图

类图在这里有,我没在这里画出来,是考虑你分标签阅读更方便

命令模式最简单实现

代码

js实现

c++实现

java实现

///* interface *////////////////////
interface IInvorker{
	void execute();
	void setCommand(ICommand com);
}
interface ICommand{
	void execute();
}
interface IReceiver{
	void shot();
	void run();
}
///* abstract *////////////////////////////
abstract class Command implements ICommand{
	IReceiver mReceiver;
	public Command(IReceiver r) {
		mReceiver = r;
	}
}
///* Concrete *////////////////////////////
class SortCommand extends Command{
	public SortCommand(IReceiver r) {
		super(r);
	}
	public void execute() {
		mReceiver.shot();
	}
}
class RunCommand extends Command{
	public RunCommand(IReceiver r) {
		super(r);
	}
	public void execute() {
		mReceiver.run();;
	}
}

class Invorker implements IInvorker{
	ICommand mCommand;
	public void execute() {
		mCommand.execute();
	}
	public void setCommand(ICommand com) {
		mCommand = com;
	}
}
class Receiver implements IReceiver{
	public void shot() {
		System.out.println("导弹发射70公里 !");
	}
	public void run() {
		System.out.println("运行速度50公里/小时 !");
	}
}
///* Client *////////////////////////////
public class Client {
	public static void main(String[] args) {
		System.out.println("hello worldff !");
		IReceiver r = new Receiver();
		ICommand sortCommand = new SortCommand(r);
		ICommand runCommand = new RunCommand(r);
		IInvorker invorker = new Invorker();
		invorker.setCommand(sortCommand);
		invorker.execute();
		invorker.setCommand(runCommand);
		invorker.execute();
	}
}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值