领域驱动设计 -- 实体

本文深入探讨了领域驱动设计中的实体概念,包括实体的唯一标识、业务连续性以及它们在实际业务中的应用。强调唯一标识的不变性和业务连续性的判断,指出实体由属性和行为组成,具有业务生命周期。并以租房公寓中的增值服务为例,阐述实体如何在变化中保持其特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体的定义

我们在定义一个概念的时候,常常会说这个概念是由那些部分构成的,按照这个套路来说,实体是由属性和行为组成的,属性指的是实体本身的特质,行为指的实体本身的能力,实体能干什么。

如果一个实体表示的业务概念较大,那么属性和能力就会较多,在描述这个实体是什么的时候,你需要把属性和能力都列举出来,沟通很费力费时。

我们在给领域元素做定义的时候,最好不要采用举例子的方式来解释,也不要用一个复杂名词取解释另外一个名词,最好用一两句直白的话来说明即可,按照这个原则,上述对实体的定义就有一点点问题,我们来重新定义一下实体。

我们认为实体是具有唯一标识的,可以表示业务连续性变化的领域元素。

这里我们一一来解释下两个概念:唯一标识,业务连续性。

唯一标识

如果想避免通过属性+能力的方式来描述实体,我们可以给实体加一个概念:唯一标识,我们可以通过唯一标识来代表实体,这个是我理解实体唯一标识概念的由来,这样沟通的时候,直接用实体的唯一标识沟通会更加方便。

这里的唯一标识 最好是有业务特征的

唯一标识如何确定?

可能是简单一个属性,也可能是多个属性的集合,甚至是一个发号器生成的业务唯一值(如 UUID),唯一标识的确定完全由业务决定,但有两个目标:

  • 1:保证唯一代表实体
  • 2:保证不变代表实体

达到以上两个目标即可,最好的例子就是人的身份证,不管你的人生发生了什么变化,生老病死,身份证都是唯一并且不变的。

注意:当你的唯一标识是技术发号器生成的时候,比如说是 100,那么在沟通的时候,这个 100 其实是代表了整个实体,并不仅仅只是代表 100 这个值,这个是我们在工作中经常忽略的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值