命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
//命令接受者
public class Receiver {
public void Action(){
System.out.println("烧茄子");
}
}
//命令抽象类
public abstract class Command {
protected Receiver receiver;
public Command(Receiver receiver){
this.receiver = receiver; }
public abstract void Execute(); }
//命令实现类
public class ConcreateCommand extends Command{
public ConcreateCommand(Receiver receiver) {
super(receiver);
}
public void Execute() {
receiver.Action();
}
}
//调用者类
public class Invoker {
private Command command;
public void SetCommand(Command command){
this.command = command;
}
public void ExecuteCommand(){
command.Execute();
}
}
//测试类
public class Test {
public static void main(String[] args) {
Receiver receiver = new Receiver(); //创建接受者
Command command = new ConcreateCommand(receiver); //创建命令
Invoker invoker = new Invoker(); //创建执行者
//设置并执行命令
invoker.SetCommand(command);
invoker.ExecuteCommand(); } }