我很难理解如何为我的问题建模:
刚才,我有3个有界的背景 - 公司,团队和报告。我相信我应该在公司内部移动Team来强制执行我的唯一名称不变 - 但是,据我所知:
"聚合边界之外的任何内容都不能包含引用 里面的任何东西,除了根实体"。
如果我只能从报告AR中引用AR,我就无法存储我的报告所属的团队 - 只是公司。
我认为团队可以作为其自己的BC以及BC公司内部存在。那么,团队的创建只会在BC公司内部作为实体进行。在这里,可以确保该团队名称的命名和不变执行。然后BC团队仍然存在,报告仍然可以从报告AR中引用TeamId。 但是,这会导致TeamId和TeamName重复 - 无论是在公司BC还是BC团队中。
这种方法听起来不错,还是我错过了什么?
如果我有3个不列颠哥伦比亚省的BC,或者在BC公司内缺少团队实体概念,我感到很困惑。
也许我混淆有界上下文我只有/需要聚合根 - 我不确定!
Gulp,求救!
答案 0 :(得分:0)
在您的示例中,公司和团队不能是有界上下文,它是实体(公司或团队可以是聚合根,它取决于任务),公司有名称标识,团队有公司名称+团队名称。
有界上下文是一组有凝聚力的模型,应该反映所选子域的含义。团队和公司可以组成一个BC,报告是另一个背景。
如果在您的示例中,报告只是汇总了一些信息以便于用户显示,那么此报告有界上下文不包含任何聚合根,因为没有业务逻辑和规则。在报告中,您应该使用简单的DTO来显示数据。