entity - 领域驱动设计 - 值对象或实体

标签 entity domain-driven-design value-objects domain-object

我有一个关于在下面的例子中识别值对象以及我必须如何实现它的问题。

案例:

在在线社区中,用户可以创建自己的私有(private)/公共(public)页面(例如 Facebook)。在此页面中,他们可以发布帖子等。其他用户可以对这些帖子进行评分。其他用户不仅可以对帖子进行评分,还可以对整个页面进行评分。

因此,如果我尝试对其进行建模,我最终会得到 3 个实体(页面、用户、帖子),它们在此内容中都具有唯一的身份。 但收视率又如何呢?我倾向于使用值对象,因为评级在此内容中没有足够的标识(没有它,帖子或页面也可以存在)并且没有用户就无法存在。

问题:它是值对象还是实体:)

谢谢!

最佳答案

在我看来,您的评级系统是高度并发的,因为您期望许多并发用户对单个 AR 进行评级。如果出现两个并发评级,这肯定会导致过时的 AR 出现大问题。您最好将您的评级设为自己的 AR,以允许同时创建单个帖子/页面的评级,例如,请参阅 Vaughn Vernon 的 IDDD 书,其中他讨论并发用户。

关于entity - 领域驱动设计 - 值对象或实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144850/

相关文章:

php - 我应该为我的 Doctrine 模型使用抽象类还是接口(interface)?

Symfony2 : best approach to use business (repository) logic in entity or controller

database - 在实体关系中替代 "master"和 "slave"?

domain-driven-design - DDD - 将项目添加到订单/收据时的价格计算

c# - 洋葱架构 : Core vs Domain

actionscript-3 - 值对象和 AS3 中的泛型类有什么不同?

c# - 在运行时更改 DbContext 连接

architecture - 在 DDD + 分层架构中实现 Automapper 的位置

c# - EF Core - 用于简单 ValueObject 的 ValueConverter 或 OwnedType?

java - 数据传输对象是否与值对象相同?