Jun 12

命令模式 不指定

chirs , 15:48 , 瓜哇天地 » 设计模式 , 评论(1) , 引用(0) , 阅读(3109) , Via 本站原创 | |
命令模式主要包括几个角色
1.接受者角色(相当于厨师)
2.请求者角色(相当于顾客)
3.命令角色
4.具体命令角色
5.客户角色

具体代码如:

package com.pattern.command;  
/**  
*接受者(相当于厨师)  
*/  
public class Receiver {  
      
    public void doReceiverAction(){  
        System.out.println("接受者执行完毕");  
    }  
  
}  

package com.pattern.command;
/**
*接受者(相当于厨师)
*/
public class Receiver {
  
  public void doReceiverAction(){
    System.out.println("接受者执行完毕");
  }

}


package com.pattern.command;  
/**  
*命令角色  
*/  
public interface Command {  
      
    public void execute();  
  
}  

package com.pattern.command;
/**
*命令角色
*/
public interface Command {
  
  public void execute();

}


package com.pattern.command;  
  
/**  
* 具体命令角色,调用接受者执行具体命令。自己不能执行具体命令,所以需要创建一个接受者对象  
*/  
public class CommandImpl implements Command{  
  
    private Receiver receiver;  
    public CommandImpl(Receiver receiver){  
        this.receiver = receiver;  
    }  
    public void execute(){  
        receiver.doReceiverAction();  
    }  
}  

package com.pattern.command;

/**
* 具体命令角色,调用接受者执行具体命令。自己不能执行具体命令,所以需要创建一个接受者对象
*/
public class CommandImpl implements Command{

  private Receiver receiver;
  public CommandImpl(Receiver receiver){
    this.receiver = receiver;
  }
  public void execute(){
    receiver.doReceiverAction();
  }
}


package com.pattern.command;  
/**  
* 请求者角色,需要发出一个命令,所以需要创建一个命令角色的对象.(相当于顾客)  
*/  
public class ReqRole {  
  
    private Command command;  
    public ReqRole(Command command){  
        this.command = command;  
    }  
    public  void  doAction(){  
        command.execute();  
    }  
      
}  

package com.pattern.command;
/**
* 请求者角色,需要发出一个命令,所以需要创建一个命令角色的对象.(相当于顾客)
*/
public class ReqRole {

  private Command command;
  public ReqRole(Command command){
    this.command = command;
  }
  public  void  doAction(){
    command.execute();
  }
  
}

package com.pattern.command;  
/**  
*客户角色  
*/  
public class Test {  
      
    public static void main(String[] args){  
          
        Receiver receiver = new Receiver();//接受者。不和任何对象关联  
          
        Command command = new CommandImpl(receiver);//构建一个命令角色。因为自己不执行任何命令,真正执行命令的是接受者,所以需要传递一个接受者对象  
          
        ReqRole reqRole = new ReqRole(command);//请求角色。因为需要请求一个命令,所以需要接受一个命令角色对象  
      
        reqRole.doAction();  
    }  
      
  
}  
dsf Email Homepage
2010/07/30 16:49
cry
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]