【问题标题】:DDD - aggregate roots in a very simple blog modelDDD - 在一个非常简单的博客模型中聚合根
【发布时间】:2010-12-10 20:13:00
【问题描述】:

作为一个练习,我尝试使用 DDD 在 .NET 中创建一个简单的博客应用程序。到目前为止,我有用户、主题和评论类。但问题是如何将评论与用户和主题联系起来?如果我说 User 和 Topic 是聚合根,那么 Comment 属于哪里?

【问题讨论】:

  • 如果你遵循 DDD 的理论,这个问题永远不会存在。首先,集思广益并绘制可能的场景,然后编写代码。例如,一个主题可以被认为是一系列主题的第一个评论,因此它们之间没有太大区别,除了主题具有的额外内容(标题、标签等)
  • 嗯,我在 DDD 和软件架构方面完全是个菜鸟。但是据我所知,应该避免一概而论,也就是说,如果用户将主题视为与评论不同的事物,我不应该将其建模为评论。我现在正在尝试集思广益我的模型...

标签: domain-driven-design aggregate


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2011-01-04
    • 1970-01-01
    • 2023-04-04
    • 2016-03-21
    • 2016-03-29
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多