首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ddd:实体或VO

ddd:实体或VO
EN

Stack Overflow用户
提问于 2012-11-07 21:02:39
回答 2查看 804关注 0票数 3

假设我有一个应该包含Passport (政府id)对象的Passenger对象。我正在从PassengerRepository获取Passenger。向服务器发出PassengerRepository创建请求并获取数据(json),然后解析接收到的数据并存储在存储库中。

我很困惑,因为我想将Passport存储为实体并将其放到PassportRepository中,但是所有关于密码的信息都包含在json中,而不是我上面收到的信息。

我想我应该使用Passport作为VO,并将它放在Passenger (聚合)对象中。或者我可以创建一个包含PassengerRepositoryPassportRepositoryPassengerService

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-07 21:08:43

值对象是由其属性定义的对象-具有相同属性值的两个实例本质上是相同的值。如果这对于您的Passport类型是正确的,那么它应该是一个VO。

如果它确实是一个VO,那么你是排序的-它只能通过聚合来访问。

但是,如果情况并非如此,并且您的域中的passport有一个无论属性更改(例如,有人更改其姓名)都保持不变的身份,那么您需要考虑,在您的域中,Passport实体是否只有在附加到Person时才有意义。如果它们只在这个上下文中有意义,那么它们也应该只通过聚合来访问。

票数 5
EN

Stack Overflow用户

发布于 2012-11-07 22:09:41

我会说Passport是一个VO。一个人可以更换她的护照,这意味着一个新的护照(新的序列号)被签发。我认为Passport只是一个政府实体,因为它需要跟踪每个独特的实体。对于我们其余的人来说,我们并不关心新护照和旧护照是否具有相同的id。我们关心的是有一本有效的护照。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13270345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档