聚合的一个主要特征是具有不变规则。而维护不变规则的前提是要做好对聚合的封装,否则,外部的对象就可能无意间破坏聚合内部的规则。
实现关联主要有两种方式,一种是对象关联,另一种是 ID 关联。
使用 ID 关联 的方式,很多根据 ID 查找对象的工作只能留给领域服务或应用服务来做。
领域模型和实现模型图的区别,实际上反映的是我们思维的两个不同层面,一个是概念层面(或者叫领域层面),另一个是实现层面。这种思维方式对正确实践 DDD 很重要。
在 DDD 的实践中,领域模型图是必需的,而实现模型图则是可选的,一般只在逻辑比较复杂或者开发者还不熟练的时候才要画出来。熟练以后,通常在脑子里过一下,直接根据领域模型写代码就可以了。
领域对象返回查询结果时,需要实现完全封装,避免调用方修改返回的数据,导致对象内部数据发生变化。
可拷贝一份数据的副本返回给调用方。