让行为的发送者和执行者完全解耦,当用户发出命令后,无需关注谁来执行命令,有转发者来进行命令的调配和转发。
-Receiver:命令的执行action者
-Command:命令标准接口
-ConcreteCommand:具体的命令
-Invoker:包含Command,命令的传递者
public interface Kitchener { public void cook(); } public class BeefKitchener implements Kitchener { public void cook() { System.out.println("做牛肉"); } } public class ChickenKitchener implements Kitchener { public void cook() { System.out.println("做烤鸡"); } } public interface Command { public void execute(); } public class CookBeefCommand implements Command { private Kitchener kitchener; public void execute() { kitchener=new BeefKitchener(); kitchener.cook(); } } public class CookChickenCommand implements Command { private Kitchener kitchener; public void execute() { kitchener=new ChickenKitchener(); kitchener.cook(); } } public class WaiterInvoker { private Command command; public void setCommand(Command command) { this.command = command; } public void action(){ command.execute(); } } public class Main { public static void main(String[] args) { WaiterInvoker waiterInvoker=new WaiterInvoker(); Command command=new CookBeefCommand(); waiterInvoker.setCommand(command); waiterInvoker.action(); } }
原文:https://www.cnblogs.com/hbsdljz/p/11130245.html