package command;
/**
* 接受者
* @author Administrator
*
*/
public class Receiver {
public void doCommand1(){
System.out.println("command1 has been done");
}
public void doCommand2(){
System.out.println("command2 has been done");
}
}
package command;
/**
* 命令模式接口
* @author Administrator
*
*/
public interface Command {
public void doit();
}
package command;
/**
* 具体命令1
* @author Administrator
*
*/
public class Command1 implements Command {
private Receiver receiver;
public Command1(Receiver receiver){
this.receiver = receiver;
}
@Override
public void doit() {
receiver.doCommand1();
}
}
package command;
/**
* 具体命令2
* @author Administrator
*
*/
public class Command2 implements Command {
private Receiver receiver;
public Command2(Receiver receiver){
this.receiver = receiver;
}
@Override
public void doit() {
receiver.doCommand2();
}
}
package command;
/**
* 请求者
* @author Administrator
*
*/
public class Invoker {
private Command1 command1;
private Command2 command2;
public Invoker(Command1 command1,Command2 command2){
this.command1=command1;
this.command2=command2;
}
public void doCommand1(){
command1.doit();
}
public void doCommand2(){
command2.doit();
}
}
package command;
/**
* 客户端 简单命令模式
* @author Administrator
*
*/
public class Client {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command1 command1 = new Command1(receiver);
Command2 command2 = new Command2(receiver);
Invoker invoker = new Invoker(command1, command2);
invoker.doCommand1();
invoker.doCommand2();
}
}