【问题标题】:Best practices to apply in Domain Driven Design principles?应用于领域驱动设计原则的最佳实践?
【发布时间】:2011-02-16 21:18:21
【问题描述】:

领域驱动设计有时真的很令人困惑,由于我对这项技术相当陌生,所以我想就目前困扰我的那些场景得到一些答案。

这是一个使用 DDD 原则表示我的问题的简单图表。我的问题是关于聚合根、域验证和“方法”或最佳实践。

  1. 在这种情况下,您将如何实现一种计算用户写入的 cmets 数量的方法?它会是“评论”中的一种方法吗?还是最好是存储库中的方法(ReviewRepository)?
  2. 如果需要,我如何让其他实体访问 cmets?在这种情况下,这是否意味着评论不再是“评论”聚合的一部分?
  3. 如果评论与其他实体有组合关系怎么办?您将如何管理对该实体的访问?评论是该实体还是根负责?
  4. 关于此模型的任何其他建议或事实?在设计模型时我应该学习哪些最佳实践?

谢谢。

注意:答案必须来自 DDD 原则

评论实体中有一点错误。 Add 方法中的“Compte”是“Account”,应该是 A 而不是 C。

【问题讨论】:

  • “答案必须是 DDD 原则的伙伴”这是否意味着这是作业?
  • 哈哈。一点也不。我只想从真正了解 DDD 的人那里得到答案。如果这是作业,我不会来这里,我只会问我的老师。实际上,我绘制了图表并在这个简单的应用程序上工作,以了解一些基本概念。

标签: domain-driven-design uml


【解决方案1】:

在这种情况下,您将如何实现一种计算用户写入的 cmets 数量的方法?

责任属于审查。它是 cmets 的集合。计数是任何聚合的一流特性。

如果需要,我如何让其他实体访问 cmets?

评论可通过评论访问。评论是 cmets 的集合。

如果评论与其他实体有组合关系怎么办?

如果没有具体而具体的例子,很难回答“假设”问题。毕竟,设计是由问题域驱动的,而不是随机的想法。

如果某个“其他”实体也似乎是评论的组合,您必须回到领域专家那里并尝试确定真正的责任在哪里。

一对问题是“如果评论被删除,cmets 会发生什么?”和“如果神秘的‘他者’被移除,cmets 会发生什么?”这有助于找到责任。

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 2011-01-30
    • 1970-01-01
    相关资源
    最近更新 更多