接收者类
//接收者类 public class Receiver { /** * 真正执行具体命令逻辑的方法 * */ public void action(){ Log.d("recevier","action"); } }
抽象的命令接口
public interface Cmd { /** * 抽象的命令接口 * */ void execute(); }
具体的命令类
//具体命令类 public class Command implements Cmd { private Receiver receiver;//持有对接收者的引用 public Command(Receiver receiver) { this.receiver = receiver; } @Override public void execute() { receiver.action(); } }
请求者类
//请求者类 public class Invoker { private Command command;//持有一个对相应命令对象的引用 public Invoker(Command command) { this.command = command; } public void action(){ command.execute(); } }
执行代码
//创建一个接收这对象 Receiver receiver = new Receiver(); //根据接收这对象创建一个命令对象 Command command = new Command(receiver); //跟据具体的对象创建请求者对象 Invoker invoker = new Invoker(command); //执行请求方法 invoker.action();