我们假设:
User
实体。 (包含登录,密码)UserProfile
实体作为User
的内部部分。 (包含 lastName , firstName 等。)这种分离的一个原因是保持SRP(关注点分离):
User
=>处理身份验证数据,UserProfile
=>处理用户的联系信息等。
我没有选择将UserProfile
设为链接且不同的聚合根,因为从逻辑上讲,没有链接UserProfile
的{{1}}完全没有意义。因此,我们在UML意义上讨论User
。
规则说任何客户端都不应直接访问聚合根的内部实体。
因此,任何客户都不需要知道composition
身份来完成他们的任务。重要的是UserProfile
一个。
如果有人想要更新关联的User
,则UserProfile
中的方法应该存在。
当然,我的用户实体需要一个UUID(根据 IDDD Vaughn Vernon的书建议生成一个)。 所以我使用专用库(Apache,因为我使用JVM)生成了一个。
我的问题主要集中在相关的User
身份上。
因为期望它可以在外面到达是没有意义的;如推荐 Evans ,我们应该设置一个“简单”的本地身份,仅在相关聚合中唯一。
UserProfile
包含MULTIPLE User
。根据用例,这些本地身份将允许检索权利UserProfile
(s)。
但是如果 1-1关系(一个UserProfile
只有一个User
),我甚至怀疑“身份”的必要性,不管有什么是。
我该如何处理这种情况?
答案 0 :(得分:1)
就像你说的那样,如果每个UserProfile
只有一个User
,那么它就没有必要具有明确的本地身份。在每UserProfile
个User
个值对象的方案中,如果要更新它们,则需要一种方法来引用特定的配置文件,例如。