設計模式之命令模式 Command
阿新 • • 發佈:2017-09-05
sta clas ide class open cli private 2017年 命令模式
介紹
角色
使用場景
代碼實現
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(); } }測試
設計模式之命令模式 Command