2010-12-10 61 views
0

作为一项练习,我尝试使用DDD在.NET中创建一个简单的博客应用程序。到目前为止,我有用户,主题和评论类。但问题是如何将评论与用户和主题相关联?如果我说用户和主题是聚合根,评论属于哪里?DDD - 非常简单的博客模型中的聚合根

+0

如果你遵循DDD的理论,那么这个问题就永远不会存在。首先,集思广益并绘制可能的场景,然后编码。例如,一个主题可以被认为是它们的一系列的第一个评论,所以除了主题所具有的额外特征(标题,标签等)之外,它们之间没有很大的区别 – yoda 2010-12-10 20:19:45

+0

嗯,我是DDD中的完全noob,一般的软件架构。但是从我听说的人们应该避免泛化,也就是说,如果用户将某个主题看作与评论不同的东西,我不应该将其作为评论的模型。 我正在尝试头脑风暴现在我的模型... – 2010-12-10 21:44:22

回答

0

聚合可能与其他聚合根有关联。

例如评论可能与主题和用户都有关联。 这就是我将如何建模它,聚合根是一致性的边界。 主题不需要与其评论保持一致,因此评论不需要成为该聚合的一部分。 用户不需要与他或她的所有评论保持一致,因此用户不需要了解评论。

我会通过评论库获取特定主题的评论。 例如

var comments = commentRepo.FindCommentsForTopic(someTopic); 
//or by topic id for pragmatic reasons.