什么是聚合?

时间:2018-03-25 13:42:06

标签: architecture software-design

我在阅读域驱动设计和一些软件工程文章时已多次阅读聚合这个词,但仍然不知道如何使用它或正确理解它。有时候我会在模型(类)上调用它,有时我会错过面向对象的聚合关系。有一个很好的解释吗?

1 个答案:

答案 0 :(得分:2)

两者都不同。 在域驱动设计中, Bounded Context 包含一个或多个聚合。将有界上下文拆分为多个聚合来自功能需求。

聚合包含的集合(请参阅注释),它们在功能上彼此相关。换句话说,聚合中的类共享相同的事务(应该一起保存在数据库中)。

  

示例订单类,订单商品类,订单类型   Enum-Class,地址类。

以上四项可以形成聚合。在这种情况下,订单类充当聚合根,它必须是公共的并且公开给其他层。每个聚合只有一个聚合根。

聚合之间的交互仅通过聚合根链接。

进一步阅读:https://domainlanguage.com/ddd/

  

注意: - 聚合可能包含3类组件。他们可能是也可能不是班级类型。

     
      
  1. 实体 - 所有实体都是类
  2.   
  3. 值对象 - 它可以是ValueType(它可以是C#中的结构)
  4.   
  5. 枚举类 - 简单的枚举在域驱动设计中很糟糕,因此首选Enum类。
  6.