介绍
角色
使用场景
代码实现
public interface Command { //这个方法是一个返回结果为空的方法 //实际项目中,可以根据需求设计多个不同的方法 void execute(); }
class ConcreteCommand implements Command{ private Receiver receiver; //命令的真正执行者 public ConcreteCommand(Receiver receiver) { super(); this.receiver = receiver; } @Override public void execute() { //真正之前或后,执行相关的处理 receiver.action(); } }
/** * 调用者/发起者 * @author bzhx * 2017年3月14日 */ public class Invoke { public Command command; //也可以通过容器List<Command>容纳很多命令对象,进行批处理,数据库底层事务管理就是类似的构造 public Invoke(Command command) { super(); this.command = command; } //业务方法,用于调用命令类的方法 public void call(){ command.execute(); } }
/** * 真正的命令执行者 * @author bzhx * 2017年3月14日 */ public class Receiver { public void action(){ System.out.println("Receiver.action()"); } }
public class Client { public static void main(String[] args) { Command c = new ConcreteCommand(new Receiver()); Invoke i = new Invoke(c); i.call(); } }