我已经分配了一个相当简单的项目作为考试,我有想法使用域驱动设计开发它。聚合和聚合根困惑
你们中的许多人可能会说应用程序非常简单,以至于使用存储库和UoW只是浪费时间,而且您可能是正确的,但我认为这是一个学习更多东西的机会。
该应用程序是一个“机票”系统,从下面的图像,你可能很可能猜测它的功能。
事情是,我不知道我是否正确地分离聚合和他们的根。
编辑: 我给出的数据模型,使任何人都可以很容易地发现整个功能。
问题是,从雇员的角度来看,“Rad”表示封装了整个功能并且是聚合根。
但是从管理角度来看,航班没有他的业务。 他只是想更新或添加新的飞机 - 公司等。
因此,然后有一个新的聚合根,这是飞机封装飞机座位(实体),seatType(价值对象)和公司(实体)作为新聚合。
- 这往往混淆我,因为我有一个聚合根(飞机)在另一个聚合(飞行聚合)内。
- 由于聚合根被认为是没有它的“CORE”实体,其中的其他实体在没有它的情况下没有任何意义,所以我在考虑公司。而我的结论是,公司没有飞机是有道理的。
为了更多地解释管理员想要插入新公司或想先载入公司然后载入其飞机的场景。
DDD原则说聚合中的任何实体只能从根本身加载。 所以这里是混乱。
我已经更新了问题,而不是在这里发布评论,因为它是该死的大。 – BeStelios