Command mode to achieve company retreat attack

Command mode to achieve company retreat attack

ArmySuperior.java:

/*
 * 请求者
 */
public class ArmySuperior {

	Command command;
	public void setCommand(Command command)
	{
		this.command=command;
	}
	public void startExecute()
	{
		command.execute();
	}
}

Command.java:

/*
 * 命令接口
 */
public interface Command {

	public void execute();
}

CompanyArmy.java:

/*
 * 接受者
 */
public class CompanyArmy {

	public void sneakAttack()
	{
		System.out.println("三连进攻");
	}
}

CompanyArmySi.java:

public class CompanyArmySi {

	public void back()
	{
		System.out.println("四连撤退");
	}

CompanyArmywu.java:

public class CompanyArmywu {

	public void relax()
	{
		System.out.println("五连修整");
	}
}

ConcreteCommadwu.java:

public class ConcreteCommadwu implements Command {

	CompanyArmywu army;
	ConcreteCommadwu(CompanyArmywu army)
	{
		this.army=army;
	}
	public void execute()
	{
		army.relax();
	}
}

ConcreteCommand.java:

public class ConcreteCommand implements Command{

	CompanyArmy army;
	ConcreteCommand(CompanyArmy army)
	{
		this.army=army;
	}
	public void execute()
	{
		army.sneakAttack();
	}
}

ConcreteCommandsi.java:

public class ConcreteCommandsi implements Command {

	CompanyArmySi army;
	ConcreteCommandsi(CompanyArmySi army)
	{
		this.army=army;
	}
	public void execute()
	{
		army.back();
	}
}

Application.java:

public class Application {

	public static void main(String[] args)
	{
		CompanyArmy sanlian=new CompanyArmy();
		Command san_attack=new ConcreteCommand(sanlian);
		ArmySuperior lianzhang=new ArmySuperior();
		lianzhang.setCommand(san_attack);
		lianzhang.startExecute();
		
		CompanyArmySi silian=new CompanyArmySi();
		Command si_back=new ConcreteCommandsi(silian);
		lianzhang.setCommand(si_back);
		lianzhang.startExecute();
		
		CompanyArmywu wulian=new CompanyArmywu();
		Command wu_relax=new ConcreteCommadwu(wulian);
		lianzhang.setCommand(wu_relax);
		lianzhang.startExecute();
	}
}
Published 74 original articles · won praise 25 · views 10000 +

Guess you like

Origin blog.csdn.net/qq_43191251/article/details/104915303