##1.接收者
CompanyArmy1
2
3
4
5public class CompanyArmy{
public void sneakAttack(){
System.out.printnln("我们知道如何偷袭敌人,保证完成任务");
}
}
##2.命令接口
Command1
2
3public interface Command{
public abstract void ececute();
}
##3具体命令
ConcreteCommand1
2
3
4
5
6
7
8
9
10
11public class ConcreteCommand implements Command{
CompanyArmy army;//含有接收者的引用
ConcreteCommand(CompanyArmy army){
this.army=army;
}
public void execute(){//封装这指挥官的请求
army.sneakAttack();//偷袭敌人
}
}
##4.请求者
ArmySuperior1
2
3
4
5
6
7
8
9
10public class ArmySuperior{
Command command;//用来存放具体命令的引用
public void setCommand(Command command){
this.command=command;
}
public void startExecuteCommand(){//让具体命令执行execute()方法
command.execute();
}
}
##5.模式的使用
Application1
2
3
4
5
6
7
8
9public class Application{
public staic void main(String args[]){
CompanyArmy 三连=new CompanyArmy();//创建接收者
Command command=new ConcreteCommand(三连);//创建具体命令并指定接收者
ArmySuperior 指挥官=new ArmySuperior();//创建请求者
指挥官.setCommand(command);
指挥官.startExecuteCommand();
}
}