深度克隆一组互连对象的最佳方法是什么?例:
class A { B theB; // optional // ... } class B { A theA; // optional // ... } class Container { A[] a; B[] b; }
显而易见的事情就是走向对象并深入克隆一切,因为我来到它.然而,这会产生一个问题 - 如果我克隆一个A
包含a 的那个B
,并且它B
也在Container
那里,B
那么克隆后我将克隆两次Container
.
下一个逻辑步骤是Dictionary
在克隆之前创建并查找每个对象.然而,这似乎可能是一个缓慢而无法解决的问题.
有什么想法吗?