2

我在我的 Java 程序中使用复合模式,这样一个组件被三个类扩展。

  1. 叶类扩展组件
  2. 复合扩展组件
  3. 装饰器扩展组件(用于装饰叶子)

组合当前使用 List 实现,其中每个元素可以是叶子、另一个组合或装饰器。我正在考虑添加我将使用命令/备忘录模式的撤消/重做功能。

现在我的问题是,如何在此处创建列表的深层副本,以便以后恢复?基本上,需要找到一种方法,允许我在执行另一个命令之前在当前时间创建一个新的列表副本。我认为必须有一些递归的方式来做到这一点。

谢谢

4

1 回答 1

1

最便宜的代码方法(但在整体 CPU 和内存使用方面可能不是最便宜的)是将您的类标记为可序列化,将列表序列化到内存缓冲区,然后将其反序列化回对象。如果你做得对,结果将是你的对象列表的深层副本。

于 2013-04-01T01:54:53.320 回答