持久化 · 第 5 题,共 12 题
在 Extbase 领域模型中,实体(Entity)与值对象(Value Object)有何区别?
有 1 个正确答案。 简单
显示答案
答案
- A 实体有自己的标识(UID),值对象仅由其值定义
解析
实体 即使属性改变也仍是"同一个对象"——UID 为 42 的会议即使标题变了,也仍是那场会议。值对象 没有标识:名称和十六进制值相同的两种颜色是相等且可互换的;典型例子有金额、日期范围或坐标。值对象是不可变的;不是修改它,而是用新对象替换它。在 TYPO3 v14 中,值对象写成普通 PHP 类,其值作为所属实体的列存储;类 AbstractValueObject 被标记为 @internal,不应被继承。