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