DDD 领域建模笔记
核心概念
战术设计(Tactic DDD): Entity, Value Object; Aggregate, Root Entity, Service, Domain Event; Factory, Repository
战略设计(Strategic DDD): Bounded Context, Context Map; Published Language, Shared Kernel, Open Host Service, Customer-Supplier, Conformist, Anti Corruption Layer (context relationship types)
Entity(实体)
- 存在 2 点特征
- 唯一标志:当一些对象不是由属性定义,而是由一个唯一标志定义的话,我们就可以认为它是一个实体。
- 连续性:对象的连续性体现在对象是有生命周期的。
- 由上2点可以看出,实体并非一定是映射到我们现实世界的某个具体事物
- 生成实体唯一标识的 4 种方法
- 用户提供一个或者多个初始唯一值作为输入时
- 程序内部通过某种算法自动生成身份标识,例如UUID、雪花ID等
- 程序依赖于持久化存储,比如数据库生成的自增主键
- 通过其他的限界上下文决定出的唯一标识,作为程序的输入。
- 实体不变性
- 一个实体维护了一个或者多个不变条件
- 不变条件主要是由聚合所关注