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

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

当前:命令模式

关于模式的综合运用:

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

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

需求:坦克大战

创建两种坦克

坦克类型 射程 速度
b70 70米 时/70公里
b50 50米 时/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();
	}
}

运行结果

你可能感兴趣的:(设计模式-坦克大战-java,java)