DDD:子龙关于聚合的总结

了解同一个边界中的真正的不变量

聚合的划分是需要细心设计的,聚合划分时除了根据聚合本身的定义外还应该能保证聚合内部元素的一致性,当外界通过聚合根对聚合内的元素进行修改时能使改变的元素与其他元素之间保持设定的一致性,确保概念上的不变。

尽量设计小的聚合

聚合设计大多数时候都会受到主观因素的影响,有的人喜欢设计大聚合(聚合包含的实体和值对象数量太多),因为觉得大聚合容易获得聚合内的其他元素,这样做虽然表面上看起来很方便,但是存在很大的弊端,大聚合在进行数据操作时不容易控制,容易造成事务失败,因此应该尽量设计小的聚合。

不同聚合之间通过唯一标识来关联

聚合A和聚合B之间存在关联,并且在使用聚合A时,经常需要用到聚合B中元素,这时候存在两种解决办法,一种是让聚合A的聚合根拥有对应的聚合B的元素引用,另一种则是在聚合B中的元素加入聚合A的聚合根的唯一标识。这两种方法的最大区别在于前者持有引用虽然操作上十分方便但是需要付出很大代价,例如当聚合A加载时便会聚合B中的相关元素,有时候可能并不需要用到聚合B中的元素,从而导致效率上的性能损失;后者利用唯一标识来关联则能防止上述情况的发生,聚合A加载时不会直接加载聚合B中的元素,如果需要时可通过唯一标识直接查找。 

你可能感兴趣的:(总结)