不相关命令的命令设计模式

时间:2016-12-13 16:12:16

标签: javascript design-patterns

到目前为止,我在网上找到的所有示例和教程都处理了对值进行加法或减法或其他操作的命令 - 计算器就是常见的例子。

但是,如果您的命令与计算器中的命令不同,该怎么办?

想象一下像Microsoft Visio这样的绘图程序,用户将屏幕上的对象放置并移动到x和y位置。或者添加和删除对象。这些命令是不相关的,因此如果堆栈中的下一个命令是您需要撤消的创建对象命令,则跟踪当前的x,y位置没有意义。

有任何建议如何处理?

1 个答案:

答案 0 :(得分:0)

假设"在轴上移动物体" +正确的命令是"对象"。然后命令模式处理该对象并包含命令。因此命令模式并不意味着保留该对象的状态"。每次,无论输入对象是相同还是不同。

在计算器的情况下,"删除命令"将与"删除对象命令"。

相同

在此讨论之前,您使用命令模式移动对象的目的是什么?