命令设计模式(发送命令示例)
0. UML结构图
1. 发送命令示例 Code
1.1 命令执行者
public class Receiver {
private int id;
public Receiver(int id) {
this.id = id;
}
public void action() {
System.out.println("Receiver.action " + id);
}
}
1.2 命令接口
public interface Command {
void execute();
}
1.3 命令实现类
public class MyCommand implements Command {
private Receiver receiver;
public MyCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
System.out.println("receiver.action() before");
receiver.action();
System.out.println("receiver.action() after");
}
}
1.4 命令调用者
public class Invoke {
private List<Command> list = new ArrayList<>();
public void add(Command command) {
list.add(command);
}
public void run() {
for (Command command : list) {
command.execute();
}
}
}
2. 发送命令示例 Test
public class CommandTest {
public static void main(String[] args) {
Command command1 = new MyCommand(new Receiver(1));
Command command2 = new MyCommand(new Receiver(2));
Invoke invoke = new Invoke();
invoke.add(command1);
invoke.add(command2);
invoke.run();
}
}