DDD之值对象和实体的区别

171 阅读1分钟

1.本质区别

实体是人通过感官可以感觉到的客观存在的事物,或者以存在的事物为蓝本想象出来的事物;而值对象是为了描述事物,由人抽象出来的纯粹概念。讨论值对象的变化是没有意义的。

2.表达方式的区别

在实践中,由于我们往往更关心的是实体之间的关联关系,所以一般建议,在领域模型图里,实体之间的关系用关联来表达,而实体和值对象之间的关系用属性来表达。

3.聚合包展示位置的区别

值对象本身,可以用 <> 衍型来标识。对于可枚举的值对象,还可以采用 UML 专门的枚举衍型来表达。对于依附于实体的值对象,可以放在实体所属的聚合包里,而不依赖于实体的值对象,可放在公共包里。如果某些值对象不需要强调,那就不必专门画出来。



此文章为2月Day9学习笔记,内容来源于极客时间《手把手教你落地 DDD》