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();
}
}
}