DDD如何区分实体和值对象

2021-09-17  本文已影响0人  后厂村老司机

前言

实体和值对象的区分是领域驱动设计中的老大难问题,建模过程中是必然会遇到的问题,我们在落地领域驱动设计过程中就遭遇了这类问题,下面介绍下我们落地过程中的经验。

实体

实体是指在你这个领域存在的一个对象,多数时候这个对象是一个现实世界对象的抽象,比如一个Person、一个User、一个Book、一个Order,就是人、用户、书、订单抽象出来的对象。极少数时候在现实世界中没有这种映射,但无论现实世界有没有映射,在领域通用语言建模的时候、事件风暴的时候,实体都是可以被识别出来的。
实体的特征:

值对象

值对象是用来度量和描述事物的对象,比如文本字符串、比如时间、比如数字,还有更加详细的值对象比如外国人全名(姓氏、名字)、比如货币(20 美元),比如电话号、地址等。
值对象的特征:

实体与值对象的区别

相等性

唯一性

生命周期

上一篇 下一篇

猜你喜欢

热点阅读