【发布时间】:2009-04-27 15:51:37
【问题描述】:
在领域驱动设计中,具有标识的对象是一个实体是众所周知的。例如,任何人都会有多种形式的身份(姓名等)。
但是值对象是那些没有身份的对象。一个常见的值对象是地址,但是地址没有身份。但是在数据库层,我们可以有一个复合键。这个概念在 DDD 中有效吗?它将通过道路名称、邮政编码和门号的组合来识别地址(省略城镇和城市等信息)。金钱将是另一个价值对象。
区别似乎在于没有单一可识别字段的对象,而值对象往往实际上并不属于实体。例如,“我”(替换为我的名字)可能会穿鞋等,但“我”不是鞋、衬衫等 (http://www.lostechies.com/blogs/joe_ocampo/archive/2007/04/23/a-discussion-on-domain-driven-design-value-objects.aspx)。
这是思考问题的正确方式吗?此外,通过这种心态/方法,我可以将其应用于 C# 中的值/引用类型选择。不过,我还不如使用 DDD 方法?
谢谢
【问题讨论】: