最佳答案
我正在为一个土木工程应用程序编写一个结构建模工具。我有一个表示整个建筑的巨大模型类,它包括节点、线元素、负载等的集合,这些也是自定义类。
我已经编写了一个撤销引擎,它在每次修改模型之后都会保存一个深度拷贝。现在我开始想,如果我可以有不同的编码。除了保存深度副本,我还可以使用相应的反向修饰符保存每个修饰符操作的列表。这样我就可以对当前模型应用反向修饰符来撤消,或者对要重做的修饰符应用反向修饰符。
我可以想象您将如何执行改变对象属性的简单命令,等等。但是复杂的命令呢?比如向模型中插入新的节点对象,并添加一些保留对新节点引用的行对象。
如何实现这一点呢?