【发布时间】:2011-01-13 23:11:05
【问题描述】:
我正在设计应用程序,我想使用command pattern 进行撤消/重做。我对命令模式进行了一些研究,但唯一没有得到的是:一个命令是否应该具有撤消和重做方法,或者我应该创建两个单独的命令,一个用于撤消,一个用于重做,并从主命令本身?
【问题讨论】:
标签: design-patterns undo-redo command-pattern
我正在设计应用程序,我想使用command pattern 进行撤消/重做。我对命令模式进行了一些研究,但唯一没有得到的是:一个命令是否应该具有撤消和重做方法,或者我应该创建两个单独的命令,一个用于撤消,一个用于重做,并从主命令本身?
【问题讨论】:
标签: design-patterns undo-redo command-pattern
命令对象本身应该实现撤消/重做功能。
命令通常从命令管理器维护的堆栈中推送和弹出以实现多级撤消。当命令被执行时,它们被压入堆栈,当它们被撤消时,它们被从堆栈中弹出。
备忘录模式将与命令模式结合使用,它不能替代命令模式的使用。它将用于维护撤消操作所需的状态。
【讨论】:
您可能还想为此考虑备忘录模式,我们使用它,它非常适合撤消。
【讨论】: