• 聚合将多个实体内聚在单个抽象中
      • 封装
      • 根实体
      • 作为应用层的单个操作对象
      • 清晰的边界
    • 聚合边界的寻找
      • 实体的独立存在是否有意义
      • 从不将聚合内的实体向外暴露
    • 发掘隐藏的抽象

    本章中,我们讨论了聚合的概念,这是一种在单个抽象中内聚多个实体的设计模式,它有几个属性,一是整体封装性,聚合是高内聚的领域模型。每个聚合在其生命周期中都有一些不变量。二是每个聚合都有根实体,它可以被其他聚合使用,聚合内部的实体和值对象都只能通过根实体间接访问。三是聚合作为应用层的单独的操作单元,应用层可以直接操作聚合而不能操作其内部实体。最后聚合有一致的边界,他们必须在单个事务中操作、保存。此外寻找合适的聚合边界的方法是确定实体可以作为单独的概念存在。如果是,则它便是聚合根。尽量保持聚合内部实体的封闭性,但有时很困难,在大多数情况下都是可行的。在发掘到新的需求而进行重构时,领域模型的迭代是持续的。在下一章,我们讨论聚合和资源库。