Command模式是设计模式中最简单的模式,该接口标准实现只有一个方法。该模式常见用法是创建和执行事务。
Active Object模式是使用Command模式的地方之一。该模式是实现多线程控制的一项最古老的技术。
如下:
ActiveObjectEngine对象维护了一个Command对象的链表。用户可以向该引擎增加新的命令,或者调用run()。run()函数只是遍历链表,执行并去除每个命令。
public interface Command {
void execute();
}
public class ActiveObjectEngine {
ArrayList<Command> itsCommands = new ArrayList<>();
public void addCommand(Command cmd) {
this.itsCommands.add(cmd);
}
public void run() {
while (this.itsCommands.size() > 0) {
Command cmd = this.itsCommands.get(0);
itsCommands.remove(0);
cmd.execute();
}
}
}