代码之家  ›  专栏  ›  技术社区  ›  slayerIQ

实现命令模式

  •  14
  • slayerIQ  · 技术社区  · 15 年前

    我正在设计一个应用程序,我想使用 command pattern 用于撤消/重做。我对命令模式做了一些研究,但唯一没有得到的是:一个命令应该有undo和redo方法,还是应该生成两个单独的命令,一个用于undo,一个用于redo,并从主命令本身调用这些命令?

    2 回复  |  直到 15 年前
        1
  •  11
  •   David    15 年前

    命令对象本身应该实现撤消/重做功能。

    命令通常从命令管理器维护的堆栈中推送和弹出,以实现多级撤消。当执行命令时,它们被推到堆栈上,当它们被撤消时,它们从堆栈中弹出。

    memento模式将与命令模式一起使用,它不能替代命令模式的使用。它将用于维护撤消操作所需的状态。

        2
  •  2
  •   Burt    15 年前

    您可能还需要考虑这个memento模式,我们使用它,它对于undo非常有用。

    推荐文章