22
撤消引擎的设计模式
我正在为民用工程应用程序编写结构建模工具。我有一个代表整个建筑物的巨大模型类,其中包括节点,线元素,荷载等的集合,它们也是自定义类。 我已经编写了一个撤消引擎,该引擎可以在对模型进行每次修改后保存一个深层副本。现在,我开始考虑是否可以使用其他编码。除了保存深层副本之外,我还可以保存每个修改器动作的列表以及相应的反向修改器。这样我就可以将反向修改器应用于当前模型以撤消,或将修改器应用于重做。 我可以想象您将如何执行更改对象属性等的简单命令。但是复杂命令呢?就像在模型中插入新的节点对象并添加一些保留对新节点的引用的线对象一样。 如何实施呢?
117
design-patterns
undo