【问题标题】:How does Command Pattern enables Undo? [duplicate]命令模式如何启用撤消? [复制]
【发布时间】:2017-04-23 01:56:28
【问题描述】:

谁能帮助我理解 Java 或 C# 中的命令模式如何在应用程序设计中启用“撤消”功能?任何解释将不胜感激。

【问题讨论】:

  • @shmosel 也许 更深层次的重复可以解决这个问题,但我认为这个问题也没有真正得到解决。
  • @BradleyDotNET 你认为它的目的是什么?
  • @shmosel 为什么命令模式使撤消成为可能,而不是撤消的最佳选择是什么(嵌套重复的答案涉及到这一点,但不是所有的海事组织)。

标签: java c# design-patterns command undo


【解决方案1】:

撤消功能要求您存储最后 n 个用户操作。通常,用户操作只会导致函数调用,因此很难存储它。以不可撤销的方式存储它更加困难。

通过将用户操作抽象为一个对象,您可以轻松地将一组这些对象放入一个数据结构(通常是Stack),如果您将一个Undo 方法放到对象上,您只需遍历该结构并在用户请求撤消操作时调用Undo 方法。

由于 Command 已经设置为封装操作(用户或其他),它是构建撤消功能的绝佳起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2011-06-14
    • 2021-06-14
    相关资源
    最近更新 更多