标签:
4 第四步:在适当的时候让调用者执行命令
3.3 demo
package limanman; import java.util.ArrayList; import java.util.List; public class CommandTest { public static void main(String[] args) { Client.run(); } } class Client { public static void run() { /** * 第一步:初始化所有的接受者 */ Receiver1 receiver1 = new Receiver1(); Receiver2 receiver2 = new Receiver2(); /** * 第二步:创建所有的命令对象 */ Command command1 = new ConcreateCmonmand1(receiver1); Command command2 = new ConcreateCmonmand2(receiver2); /** * 第三步:调用者加载命令 */ Invoker invoker = new Invoker(); invoker.setCommand(command1); invoker.setCommand(command2); /** * 第四步:在适当的时候让调用者执行命令 */ invoker.callRecever(0); invoker.callRecever(1); } } /** * 接受者1,一个具体命令对应一个具体接收者 * * @author limanman * @date 2015年10月12日 */ class Receiver1 { public void action() { System.out.println("接收者1执行具体的操作"); } } /** * 接受者2,一个具体命令对应一个具体接收者 * * @author limanman * @date 2015年10月12日 */ class Receiver2 { public void action() { System.out.println("接收者2执行具体的操作"); } } /** * 命令角色 * * @author limanman * @date 2015年10月12日 */ interface Command { public void excute(); } /** * 角色: 具体命令 * * @author limanman * @date 2015年10月12日 */ class ConcreateCmonmand1 implements Command { Receiver1 receiver1; public ConcreateCmonmand1(Receiver1 receiver1) { this.receiver1 = receiver1; } @Override public void excute() { System.out.println("执行命令1"); receiver1.action(); } } class ConcreateCmonmand2 implements Command { Receiver2 receiver2; public ConcreateCmonmand2(Receiver2 receiver2) { this.receiver2 = receiver2; } @Override public void excute() { System.out.println("执行命令2"); receiver2.action(); } } /** * 角色:invoker * * @author limanman * @date 2015年10月12日 */ class Invoker { List<Command> commands = new ArrayList<Command>(); /** * 设置命令 * * @param command * @date 2015年10月12日 * @author 佚名 */ public void setCommand(Command command) { commands.add(command); } /** * 调用者持有一系列命令对象,并在某个时间点调用对象的excute方法,将请求付诸实行 * * @param slot * @date 2015年10月12日 * @author 佚名 */ public void callRecever(int slot) { commands.get(slot).excute(); } }
输出:
执行命令1
接受者1执行具体的操作
执行命令2
接受者2执行具体的操作
标签:
原文地址:http://my.oschina.net/fengshuzi/blog/515803