public class Invoker{ public static void main(String[] args) { CodeCommand codeCommand = new CodeCommand(new Coder("程序员1")); TestCommand testCommand = new TestCommand(new Tester("测试1")); CodeCommand codeCommand1 = new CodeCommand(new Coder("BUG修复员")); PM pm = new PM(); pm.addCommand(codeCommand); pm.addCommand(testCommand); pm.executeCommand(); pm.addCommand(codeCommand1); pm.executeCommand(); } } interface Command{ void execute(); } class CodeCommand implements Command{ private Coder coder; public CodeCommand(Coder coder) { this.coder = coder; } @Override public void execute() { coder.doSomething(); } } class TestCommand implements Command{ private Tester tester; public TestCommand(Tester tester) { this.tester = tester; } @Override public void execute() { tester.doSomething(); } } interface Employer{ void doSomething(); } class Coder implements Employer{ private String name; public Coder(String name) { this.name = name; } @Override public void doSomething() { System.out.println(name + " code"); } } class Tester implements Employer{ private String name; public Tester(String name) { this.name = name; } @Override public void doSomething() { System.out.println(name + " test"); } } class PM{ private final List<Command> commandList = new ArrayList<>(); public void addCommand(Command command){ commandList.add(command); } public void executeCommand(){ commandList.forEach(Command::execute); commandList.clear(); } }
设计模式之命令模式
最新推荐文章于 2024-09-09 22:12:12 发布