汇总根设计一对多订购商品

时间:2018-09-19 05:41:21

标签: domain-driven-design aggregateroot

我一直在努力设计用于聚集域的聚合根。

域: 会议有一个或多个议程项目。 每个AgendaItem都有一个注释部分,每个AgendaItem都有一个或多个任务。

设计 现在基于准则,我试图在满足有限上下文的情况下保持较小的聚合根。所以我有MeetingAggregateRoot和AgendaItemAgreegateRoot。

业务规则: 每次会议将有多个议程项目(每个议程项目可能有一个或多个子议程项目)。但是它们应按顺序排序,并且不应有重复的序列。

如果我将单个AR保留为MeetingAR,而AgendaItem作为实体,则MeetingAR可能负责保持AgendaItem Sequence的顺序。但是随后每个AgendaItem也有多个任务,因此我决定保留两个单独的AR,即MeetingAR和AgendaItem AR(AgendaItemAR将具有任务实体)。

现在的问题是... 我应该如何设计AR,以便MeetingAR仅“负责”执行相关的操作。 AgendaItemAR仅负责其自己的操作,并且仍为会议中的所有议程项目保持顺序。

对此有任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为这不是决定。如果议程项目的生命周期取决于会议,则议程将是会议的子实体。这将是一个组合,一个议程项目不可能一个人存在。