gpt4 book ai didi

domain-driven-design - 在下面的模型中,地址不应该是一个值对象吗?

转载 作者:行者123 更新时间:2023-12-04 00:16:41 24 4
gpt4 key购买 nike

来自 How are Value Objects stored in the database? :

Assume that a Company and Person both have the same mail Address.Which of these statements do consider valid?

   1."If I modify Company.Address, I want Person.Address to automatically get those changes"

   2."If I modify Company.Address, it must not affect Person.Address"

If 1 is true, Address should be an Entity

If 2 is true, Address should be a Value Object.

在上面的模型中,邮件 Address 不应该是一个 Value Object,因为即使 CompanyPerson 有相同的邮件,这个邮件仍然没有概念标识?

换句话说,如果最初 CompanyPerson 共享 initial.address@gmail.com,但随后收到新邮件 new.address@gmail.com,那么我们可以说邮件地址 initial.address@gmail.com 本身并没有改变,而是 CompanyPerson 替换为 new.address@gmail.com ?

因此根据我的理解,Address 被共享这一事实不足以赋予它个性(即身份)?!

谢谢

最佳答案

是的,你的理解是正确的。 地址 应该几乎总是一个值对象,因为在大多数域中,地址确实只是一个值。

公司今天拥有相同的地址这一事实并不意味着如果一个发生变化,另一个也应该发生变化.如果存在这样的关系,则应通过显式约束对其进行建模,而不是将 Address 设为实体。

Eric Evans 在他关于 Domain-Driven Design 的优秀著作中谈到了这一点甚至提供了一个具体示例,其中 Address 可能是一个实体 - 邮政服务,其域围绕地址展开,并且各个地址的身份很重要。

关于domain-driven-design - 在下面的模型中,地址不应该是一个值对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com