【发布时间】:2023-03-22 05:45:01
【问题描述】:
领域驱动设计,我试图从数学上而不是直观上找出有什么区别。在我当前的项目中,我们在banks 之间进行了某种payment 传输。
在这个系统中,银行不像实体建筑那样被承载,而是抽象的bank。它肯定有BankCode、country 和Bank Name。问题是:Is the bank should be an entity or value object。直觉上觉得应该是实体,但也有人说可以是值对象。
据我所知,entities 可能具有相同的属性但仍然不同。另一方面,value objects 不能有identity,如果所有属性都相同,它们应该相同,它们应该回答它们是什么,而不是它们是谁或它们是谁。如果我错了,请纠正我。
在系统中,banks 在任何流程中都不会发生变化,就像另一个 Value 对象 Country 或 Currency,可能我们可以说,具有相同银行代码、名称和国家的银行是相同的银行.以及我们可以说具有相同国家代码(ISO 格式)的Country 是相同的。但是,对我来说,我仍然觉得它们是实体。有人可以证明我错在哪里,并给出数学证明它们应该是Value 对象或Entities。
目前,我最终得到的是:“The one difference between Entity and Value Object is the entity can contain the all same attributes and still be different, the Value Object can't”,就像交易一样,人们可以拥有相同的金额和商品,相同的姓名,但仍然不同,如果国家、城市和门牌号是一样的。请纠正我,也许还有更多不同之处
【问题讨论】:
-
非常感谢你们的所有回复,伙计们,它变得更干净了。
标签: domain-driven-design entities value-objects