在充实一个假设的域模型时,我发现自己想知道关联域对象的更好方法是让父域对象包含一个指针(子域的标识符),还是使用子对象在父对象内构建复合。
我可以看到每种方法的优缺点,主要是大小与复杂性之间的权衡,归根结底。我倾向于更多地倾向于标识符关系方法,因为我没有预料到需要进行任何类型的延迟加载。
尽管不直接相关,但域对象是简单的 POCO(POJO 的 .NET 等效项)。它们被明确标记为可序列化,因为它们很有可能最终会在应用程序域之间交叉。在我看来,LINQ 使关系标识符方法可行,如果 LINQ 不可用,我根本不会考虑它。
任何想法将不胜感激!
编辑:还有一些想法可能让我倾向于仅使用标识符的方法。首先是对象的缓存策略。父对象和子对象完全有可能具有不同的 TTL,这由它们的策略定义。第二个是引用持有可能会限制对象重用,因为同一个孩子可能被多个父母持有——在可重用数据的情况下。这两者也与序列化对象的整体大小有关。