我已经完成了命令模式,并了解到它可以在列表中保存不同的命令。那么为什么当我们有像堆栈或队列这样的简单集合类时,它正在构造一个复杂的结构。为什么在命令模式中没有使用队列?
Queue q = new Queue();
q.Enqueue('A');
q.Enqueue('M');
ch = (char)q.Dequeue();
答案 0 :(得分:1)
您已关联的文章DOES使用Stack
代表UndoableCommand
:
class CommandManager { private Stack commandStack = new Stack(); ...
然而,使用Queue
表示从用户进入并被发送到命令处理系统的命令,这将有助于在命令执行时继续使表单响应。这实际上是异步编程 1 ,它超出了本文的范围。
1 通常情况下,我在这里链接一篇文章,但异步编程的主题是如此之大,以至于我真的相信你最好不要用谷歌搜索它并查看多个来源