1

我有一种明显的感觉,我又一次过头了。几个月前,我构建了一个系统,可以搜索代码并使用反射进行修改。这很好用,现在我正在尝试重建系统并概括它的某些方面。我想做的一件事是不知道最近计算中可能发生的变化。

例如,假设我正在执行一个马里奥程序并且我们按下一个按钮。游戏的状态发生了变化,但我们不知道如何变化。我想扭转这种效果,这样我就可以回到过去并按下不同的按钮。我的计划是:

  • 外化所有可能对它们产生影响的游戏类。存储所有非最终字段的值,包括静态值。
  • 使用 extern 写出所有游戏对象。
  • 做出改变。
  • 使用 extern 写出所有游戏对象(以防我们稍后想跳回这个状态)
  • 再次读取更改前的状态。

从表面上看,这里有什么东西会在我脸上爆炸吗?这是个好主意吗?或者一些静态场/奇怪的行为会搞砸我吗?对于外部化,我确实计划通过反射请求所有字段的列表,并按迭代顺序写出,以免遗漏任何内容。

Mods - 我使用标签序列化,因为外部化不是现有标签。希望没关系。

编辑 - 我还不需要局部变量的值,或者堆栈或堆。不过,这可能是稍后需要考虑的 - 特别是在更改之间可能已被破坏的对象的存在/不存在。

本质上,我需要反转一般计算步骤。不知道这是否可能。

4

1 回答 1

1

可能是我误读了您的问题,但在我看来,您正在寻找的是Aspect Oriented Programming
如果您已经使用Spring,则可以使用它。不要试图重新发明轮子

于 2013-04-16T14:49:03.877 回答