【发布时间】:2016-09-21 18:42:28
【问题描述】:
我浏览了命令模式并了解到它可以在列表中保存不同的命令。那么,当我们有简单的集合类(如堆栈或队列)时,为什么要构造一个复杂的结构。为什么在命令模式中没有使用队列?
Queue q = new Queue();
q.Enqueue('A');
q.Enqueue('M');
ch = (char)q.Dequeue();
【问题讨论】:
-
我不确定您认为这两者之间的直接关系。命令模式专门解决了如何解决发送者和接收者之间的通信问题。我也不明白为什么您认为队列不能/不能与命令模式一起使用。通常情况恰恰相反,它被利用了。
-
根据我的理解,命令模式定义了我们如何保留请求以供将来使用。
-
这只是命令模式的目的之一。还可以将请求定义为特定对象,并且可以根据所需的任何参数化来管理请求与各种接收者之间的关系。
-
仅用于撤销/重做的概念
-
在一天结束时,您将数据结构与模式进行比较,并询问为什么您拥有模式而不仅仅是数据结构。数据结构只能帮助模式完成其工作。它们不是彼此的直接替代品,也不应该是。
标签: c# asp.net design-patterns