我正在学习DDD,并尝试使用域驱动设计对用户注册过程进行建模。让我们想象一个晚宴托管系统,其中Host和Guest是两个实体。主持人将是在系统中创建晚宴的人,客人将加入晚宴,向主持人支付账单,对晚宴进行评分等。主持人和客人都将是晚宴主持系统的用户。我创建了三个实体,如下所示:
-
主机(id、First_Name、Last_Name、电子邮件、手机…)
-
客人(id、名字、姓氏、电子邮件、手机…)
-
用户(id、User_type(Guest或Host)、Joining_Date、Status…)
在这里,我看到一个用户不能单独存在。它将永远是主人或客人。所以在这个系统中,应该有两个聚合根——Host和Guest。用户实体将是每个聚合的一部分。
此外,用户将按以下方式注册
输入手机号码并提交
-
将向用户发送OTP
-
OTP将由系统提交并验证
-
在下一个屏幕上,用户将输入并提交他的名字、姓氏、电子邮件和性别
由于完整的用户信息是分步骤收集的,因此,由于用户可以在注册过程中杀死应用程序,因此,在成功完成最后一步之前,用户/主机/访客实体不应对系统有效,我如何使用DDD创建/保存用户/主机/访客实体?