域模型 - 标识符关系与分层对象

时间:2009-01-29 20:06:55

标签: architecture domain-driven-design domain-model

在充实假设的域模型的同时,我发现自己想知道关联域对象的更好方法是让父域对象包含指针(子项的标识符),还是更好的方法使用子对象在父对象中构建复合。

我可以看到每种方法的优点和缺点,主要是尺寸与复杂性之间的权衡,是它归结为什么。我倾向于更倾向于使用标识符关系方法,因为我没有预料到需要进行任何类型的延迟加载。

虽然没有直接关系,但域对象是简单的POCO(相当于POJO的.NET)。它们被明确标记为可序列化,因为它们很可能最终在应用程序域之间交叉。在我看来,LINQ使关系标识符方法可行,如果LINQ不可用,我根本不会考虑它。

任何想法都将不胜感激!

编辑:还有一些想法可能让我倾向于仅使用标识符的方法。首先是对象的缓存策略。根据其策略定义,父对象和子对象完全可能具有不同的TTL。第二个是参考保留可能限制对象重用,因为同一个孩子可能由多个父母持有 - 在可重用数据的情况下。这两者也与序列化对象的总体大小有关。

1 个答案:

答案 0 :(得分:1)

我在我的POCO上使用了两者。我使用父类的子列表和子类的一个父实例生成它们。