Domain driven design 试图识别汽车租赁领域的聚合根

Domain driven design 试图识别汽车租赁领域的聚合根,domain-driven-design,domain-model,aggregateroot,Domain Driven Design,Domain Model,Aggregateroot,我正试图研究一些方面的ddd领域的汽车租赁网站 用户/客户从起点站和终点站以及时间段选择一辆车 价格计算取决于各种因素,如付款方式、时间、车辆分类等。从一个子系统检索数据,该子系统的数据访问策略与应用程序的其余部分不同 该领域有几个参与者,如车站服务、呼叫中心 有界上下文的概念是 公司(员工、汽车、车站) 预订(预订、预订申请流程模型) 定价(价格模型) 账单(租金账单、职位、客户) 在定义了有界上下文之后,我不确定每个上下文的聚合根是否正确。我的想法是 公司:全部三个 预订:预订(访问账

我正试图研究一些方面的ddd领域的汽车租赁网站

用户/客户从起点站和终点站以及时间段选择一辆车

价格计算取决于各种因素,如付款方式、时间、车辆分类等。从一个子系统检索数据,该子系统的数据访问策略与应用程序的其余部分不同

该领域有几个参与者,如车站服务、呼叫中心

有界上下文的概念是

  • 公司(员工、汽车、车站)
  • 预订(预订、预订申请流程模型)
  • 定价(价格模型)
  • 账单(租金账单、职位、客户)
在定义了有界上下文之后,我不确定每个上下文的聚合根是否正确。我的想法是

  • 公司:全部三个
  • 预订:预订(访问账单、汽车和客户)
  • 定价:关税矩阵
  • 账单:客户(访问预订、账单)
如果需要,我可以添加一些类图来显示不同的有界上下文。
如果需要更多信息,可以将类图或该图迁移到其他部分。请随意询问/执行。

以我在租车领域的一点经验,我认为您的做法是正确的。有几件事你应该注意:有界上下文是逻辑上的分离,而不是物理上的分离。因此,使用类似于组合UI的东西,将允许您在预订过程中显示定价信息。您将并排托管来自不同BC的UI组件,并使用它们指导最终用户完成他试图完成的过程。另一件事是,您正在所有BC中寻找聚合根,但我确实希望您认识到,您不需要在每个BC中都使用域模型。如果事情不是您业务的“核心”,或者本质上不是基于crud的,那么一个简单的数据模型就可以了。这就是BCs的魅力所在,它能够做出深思熟虑的技术选择。

以我在租车领域的一点经验,我认为你走上了正确的道路。有几件事你应该注意:有界上下文是逻辑上的分离,而不是物理上的分离。因此,使用类似于组合UI的东西,将允许您在预订过程中显示定价信息。您将并排托管来自不同BC的UI组件,并使用它们指导最终用户完成他试图完成的过程。另一件事是,您正在所有BC中寻找聚合根,但我确实希望您认识到,您不需要在每个BC中都使用域模型。如果事情不是您业务的“核心”,或者本质上不是基于crud的,那么一个简单的数据模型就可以了。这就是BCs的魅力所在,它能够做出深思熟虑的技术选择