在充实一个假设的域模型时,我发现自己在想,在关联域对象时,更好的方法是让父域对象包含指针(子对象的标识符),还是使用子对象在父对象内构建复合对象更好。
我可以看出每种方法的优缺点,主要是在规模和复杂性之间进行权衡,归结起来就是这样。我倾向于更倾向于标识符关系方法,因为我预计不需要进行任何类型的延迟加载。
编辑:还有一些想法可能会让我倾向于只使用标识符的方法。首先是对象的缓存策略。父对象和子对象完全可能有不同的TTL,这是由它们的策略定义的。第二种可能是引用持有可能会限制对象重用,因为同一个子对象可能由多个父对象持有——在可重用数据的情况下。这两者也与序列化对象的总体大小有关。
我在我的POCO上使用这两种方法。我使用父类上的子类列表和子类上的一个父实例生成它们。