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

目录:一个实例讲完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();
	}
}

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值