在基于状态机的应用程序中实现撤消

Implementing undo in a state-machine based application

提问人:Neta S 提问时间:9/28/2023 更新时间:9/28/2023 访问量:33

问:

我有一个应用程序,其核心设计基于使用单向转换的状态机。 此设计适用于大多数方案和所需的功能;但是,该应用程序需要额外的“撤消”功能,该功能在某些州可用。由于许多状态可以转换到单个状态,因此此撤消功能迫使我跟踪以前的状态。要回到以前的状态,我可以:

  1. 强制执行我保留的先前状态,而不考虑现有转换 或:
  2. 创建许多新的“撤消”转换到以前的状态,并根据以前的状态选择正确的撤消转换

正如我目前所看到的,这两个选项在某种程度上都打破了状态机的概念。第二种选择不那么暴力,但在“如果”问题上可能更笨拙,更容易受到错误的影响。

您认为哪个选项更可取?如果您有任何想法,我很想听听。

我目前正在使用第二种建议的方法,但它非常丑陋,需要一些维护

软件-设计 状态-机 撤消

评论


答: 暂无答案