如何在领域驱动设计原则中应用最佳实践?

3

示例UML图 领域驱动设计有时会让人感到困惑,因为我对这种技术还比较新,所以我希望能得到关于当前困扰我的情况的一些答案。

这里是使用DDD原则表示我的问题的简单图示。我的问题涉及聚合根、领域验证和“做法”或最佳实践。

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

谢谢。

注意:答案必须遵循DDD原则

在Review实体中有一个小错误。Add方法中的“Compte”是“Account”,应该是A而不是C。


答案必须遵循DDD原则。这是否意味着这是一项作业? - S.Lott
哈哈,一点也不是。我只是想从一个真正了解DDD的人那里得到答案。如果这是一个作业,我不会来这里,而是直接问我的老师。事实上,我已经做了图表,并且正在开发这个简单应用程序,以便理解一些基本概念。 - Rushino
1个回答

3
在这种情况下,你会如何实现一种方法来计算用户写的评论数量?
负责评论的审查。它是评论的聚合。计数是任何聚合的一流功能。
如何使其他实体在需要时访问评论?
评论通过审查可访问。审查是评论的聚合。
如果评论与其他实体存在组成关系怎么办?
“如果”问题很难回答没有具体和具体的例子。毕竟,设计是由问题域驱动的,而不是随意思考。
如果某些“其他”实体似乎也是评论的组合,您必须回到领域专家并尝试确定真正的责任所在。
一个问题对是“如果审查被删除,评论会发生什么?”和“如果神秘的'其他'被删除,评论会发生什么?”这可以帮助找到责任。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接