我正在设计一个应用程序,我想使用 command pattern 用于撤消/重做。我对命令模式做了一些研究,但唯一没有得到的是:一个命令应该有undo和redo方法,还是应该生成两个单独的命令,一个用于undo,一个用于redo,并从主命令本身调用这些命令?
命令对象本身应该实现撤消/重做功能。
命令通常从命令管理器维护的堆栈中推送和弹出,以实现多级撤消。当执行命令时,它们被推到堆栈上,当它们被撤消时,它们从堆栈中弹出。
memento模式将与命令模式一起使用,它不能替代命令模式的使用。它将用于维护撤消操作所需的状态。
您可能还需要考虑这个memento模式,我们使用它,它对于undo非常有用。