package cn.bunny.pattern5.demo3; import lombok.Setter; public class CommandDemo { public static void main(String[] args) { Receiver receiver = new Receiver(); ConcreteCommand concreteCommand = new ConcreteCommand(receiver); Invoker invoker = new Invoker(); invoker.setCommand(concreteCommand); invoker.invoke(); } // 命令接口 interface Command { /** * 执行方法 */ void execute(); } // 接受者 static class Receiver { public void action() { System.out.println("接受者 执行。。。"); } } // 具体的执行命令 static class ConcreteCommand implements Command { private final Receiver receiver; public ConcreteCommand(Receiver receiver) { this.receiver = receiver; } /** * 执行方法 */ @Override public void execute() { receiver.action(); } } @Setter static class Invoker { private Command command; public void invoke() { command.execute(); } } }