实体与值对象(概览)
在领域建模中,“实体(Entity)”与“值对象(Value Object)”是两类常见而互补的建模元素:
| 维度 | 实体(Entity) | 值对象(Value Object) |
|---|---|---|
| 同一性 | 以唯一标识(ID)决定,同一性随时间持久存在 | 无独立同一性,等价性基于所有关键值是否相等 |
| 可变性 | 状态可变(受不变式约束) | 不可变;修改以“新建替换”方式完成 |
| 典型场景 | 用户、订单、账户、库存项 | 金额、地址、区间、坐标、邮箱 |
进一步阅读:
建议:在设计早期先优先使用值对象表达规则与计算;当需要跨用例长期追踪“同一事物”并维护不变式时,再建模为实体。