获取更改命令而不修改集合

时间:2011-01-21 16:12:03

标签: algorithm design-patterns recursion command-pattern

可能是一个名字很差的冠军,但无论如何......

我在分层数据集上使用命令模式。所以基本上我需要一个方法来返回一个对象,该对象描述将在不实际更改数据的情况下进行的更改。例如:

对象1 - >对象2 - >对象3

如果我移动对象1,它将导致对象2发生更改,这将导致对象3发生更改,因为它们相互依赖。所以......我需要一种方法来递归地遍历分层集合并收集移动对象1所需的更改而不实际修改集合。在递归的中途,能够使用像Object1.Location这样的东西会很好,但它可能已经计划好进行更改,所以我无法可靠地使用它。

我觉得有很多算法,需要进行这种“就地”修改。作为一个非CS专业,我没有学到很多这类东西,所以我甚至不知道要寻找什么样的搜索词来找到“解决方案”。我把解决方案放在引号中,因为我意识到可能没有直接解决我的问题的方法,但我只是在寻找一些好的指导方针/示例,以便让我的大脑振作起来。

任何人都可以提供一些真实世界的例子吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案的一部分可能是visitor pattern。您可以通过访问者浏览对象树,并执行类似于生成“克隆”树的内容,以表示您想要执行的操作的结果......

您能举例说明您想要达到的目标吗?

MY2C