对比
| 维度 | 实体 | 值对象 |
|---|---|---|
| 判别 | 有生命周期与身份 | 只由值定义 |
| 可变性 | 状态随时间变化 | 创建后不可变 |
| 示例 | 订单、客户、设备 | 金额、坐标、日期区间 |
| 相等性 | 按标识比较 | 按全部属性比较 |
把金额、单位、货币做成值对象并封装校验,可以消灭大量散落的参数校验代码。
实体由身份标识区分(订单号相同即同一订单),值对象由属性值区分且不可变(金额、地址、时间区间);值对象不可变可安全共享并简化并发。
| 维度 | 实体 | 值对象 |
|---|---|---|
| 判别 | 有生命周期与身份 | 只由值定义 |
| 可变性 | 状态随时间变化 | 创建后不可变 |
| 示例 | 订单、客户、设备 | 金额、坐标、日期区间 |
| 相等性 | 按标识比较 | 按全部属性比较 |