命令模式

命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。

//命令接受者

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(); } }

posted on 2012-05-24 22:12  lee0oo0  阅读(154)  评论(0编辑  收藏  举报