Domain driven design 值对象中的值对象[DDD]

Domain driven design 值对象中的值对象[DDD],domain-driven-design,Domain Driven Design,我在理解如何使用值对象和聚合时遇到了一点困难。我将用一个例子来解释我的情况 我有一个名为关系的实体。它保存ID和StartDate等值。有两个值对象:男朋友和女朋友。男朋友和女朋友对象都有地址,所以我创建了另一个值对象Address。在数据库中,这些都组合在一个表中(即ID、StartDate、BoyfriendAddress、GirlfirendState等) 我如何创造男朋友和女朋友?根据我对定义的理解,它们不符合聚合条件,因为它们没有根实体。一个值对象内部可以有另一个值对象吗 是的,可以在

我在理解如何使用值对象和聚合时遇到了一点困难。我将用一个例子来解释我的情况

我有一个名为
关系的实体。它保存ID和StartDate等值。有两个值对象
男朋友
女朋友
。男朋友和女朋友对象都有地址,所以我创建了另一个值对象
Address
。在数据库中,这些都组合在一个表中(即ID、StartDate、BoyfriendAddress、GirlfirendState等)


我如何创造男朋友和女朋友?根据我对定义的理解,它们不符合聚合条件,因为它们没有根实体。一个值对象内部可以有另一个值对象吗

是的,可以在其他值对象中包含值对象。我认为最简单的例子是阶级货币,它包含一个数量和一种货币,这是另一个VO

此外,如果男朋友和女朋友没有全局唯一id,那么他们不是聚合根,如果他们在关系中没有本地唯一身份,那么他们也不是实体


老实说,首先你的应用在政治上是不正确的:)-因为有关系。第二,一个人(我假设你有他们的名字)不是实体或聚合根,这让人感到奇怪。

这不是一个实际的应用程序。它旨在表示更复杂的应用程序。此外,我无法访问数据,因此BF/GF没有唯一标识。他们确实有名字和地址,但没有不能在另一个人身上复制的东西。