如何处理具有依赖项的对象的序列化和反序列化

时间:2014-01-31 14:02:33

标签: serialization dependencies deserialization circular-dependency

假设我有两个依赖于彼此或其他对象的对象(因此使用对这些对象的引用),我需要从/向磁盘保存/恢复它们的“状态”。由于存储指向磁盘的指针在恢复时不会产生正确的结果,我们如何在恢复时保持依赖正确?

如,

class A {
   B b;
}

class B {
{
   A a;
}

(或更复杂的链,可能有n个循环的依赖)

a a =反序列化(Adata) B b =反序列化(Bdata)

(假设我们需要a.b = b和b.a = a)

我认为对于具有惰性评估的对象具有独特的哈希值可以解决问题,但也许有更好的方法? (如果我有一个唯一的哈希,那么很容易找到要使用的对象,也可以保存和恢复对象(基本上哈希充当指针但总是有效的(因为它是唯一的,永远不会改变))

0 个答案:

没有答案