实体
什么是实体
- 一个实体是一个唯一的东西,并且可以相当长的时间内持续的变化(修改)。
- 唯一身份表识和可变性特征将实体与值对象区分开来
- 在设计早期
- 刻意把关注点放在能体现实体身份唯一性的主要属性和行为上
- 同时还关注如何对实体进行查询
- 刻意忽略掉次要属性和行为
- 首先关注实体的本质特征:唯一标识、对实体的查找
创建唯一标识
- 用户提供唯一标识:需要用户自己生成高质量的标识
- 应用程序生成唯一标识:(节点当前时间,节点IP, UUID, GUID)
- 持久化机制生成唯一标识:向数据库获取一个序列值或递增值,结果总是唯一的
- 另一个限界上下文(BC)提供唯一标识:比如通过第三方匹配、模糊匹配,用户所选对象的标识将作为本地标识。
唯一标识创建时机
- 实体的唯一标识的生成可以发生在对象创建的时候
- 也可以发生在持久化对象的时候(并发时存在持久化之前多个相同空标识的不同实体冲突可能性)
参考文献
- 《实现领域驱动设计》 — Vaughn Vernon
blog comments powered by