领域驱动设计 - 建模用户注册过程 .NET Core

问题描述 投票:0回答:1

我正在学习 DDD 并尝试使用领域驱动设计对用户注册过程进行建模。让我们想象一个晚餐托管系统,其中主持人和客人是两个实体。主人将是在系统中创建晚餐的人,客人将加入晚餐,向主人支付账单,对晚餐进行评分等。主人和客人都将是晚餐托管系统的用户。我创建了三个实体,如下所示:

  • 主持人(ID、名字、姓氏、电子邮件、手机、...)
  • 访客(ID、名字、姓氏、电子邮件、手机、...)
  • 用户(id,用户类型(访客或主持人),加入日期,状态,...)

在这里,我看到用户不能单独存在。它永远是主人或客人。所以在这个系统中,应该有两个聚合根——Host和Guest。用户实体将成为每个聚合的一部分。

用户也将按如下方式注册

输入手机号码并提交

  • OTP 将发送给用户
  • OTP将由系统提交并验证
  • 在下一个屏幕上,用户将输入并提交他的名字、姓氏、电子邮件和性别

由于完整的用户信息是分步收集的,并且由于用户可以在注册过程中终止应用程序,因此,在最后一步成功完成之前,用户/主机/访客实体不应该对系统有效,我该如何使用 DDD 创建/保存用户/主机/来宾实体?

c# aggregate domain-driven-design entity aggregateroot
1个回答
0
投票

Web应用的用户注册系统的中心业务实体是用户。为了保持数据持久性,RegisterUser 用例与 UserRepository 接口交互并验证输入数据。

用于存储用户数据的数据库驱动程序和用于管理 HTTP 请求的 Web 框架是外部框架(也称为驱动程序层)中包含的组件的示例。因此,用户是一个聚合根,主机和来宾为此继承和嵌套。

另一个聚合根实体是Dinner,不同类型的晚餐菜单将从中继承。

了解更多信息,请访问:https://medium.com/bimar-teknoloji/understanding-clean-architecture-and-domain-driven-design-ddd-24e89caabc40

© www.soinside.com 2019 - 2024. All rights reserved.