命令模式

命令模式(Command)
把一个请求或者操作封装到一个对象中,从而达到用不同的请来对客户端进行参数化的目标;对请求排队或记录请求日志,以及支持可撤消的操作。

命令模式的构成
1.客户角色:创建一个具体命令对象,并确定其所接收者

//客户角色
public class Client {
 public static void main(String[] args) {
  Receiver receiver=new Receiver();
  Command command=new ConcreteCommand(receiver);
  Invoker invoker=new Invoker(command);
  invoker.doInvokerAction();
 }
}
2.命令角色:声明一个给所有具体命令类的抽象角色,通常由一个接口或抽象类实现

//命令角色
public interface Command {
 public void execute();
}
3.具体命令角色:定义一个接收者和行为之间的弱耦合,实现execute方法,负责调用接收者的相应操作

//具体命令角色
public class ConcreteCommand implements Command {
 private Receiver receiver;
 public ConcreteCommand(Receiver receiver){
  this.receiver=receiver;
 }
 @Override
 public void execute() {
  receiver.doAction();
 }
}
4.请求者角色:负责调用命令对象执行请求

//请求者角色
public class Invoker {
 private Command command;
 public Invoker(Command command){
  this.command=command;
 }
 public void doInvokerAction(){
  command.execute();
 }
}
5.接收者角色:负责具体实施和执行一个请求

//接收者角色
public class Receiver {
 public void doAction(){
  System.out.println("执行操作!");
 }
}

posted @ 2011-12-15 12:35  残星  阅读(238)  评论(0编辑  收藏  举报