在我的域模型中,我有一个客户聚合根。我的业务规则是 -> 我不能添加具有相同名字、姓氏和电子邮件地址的新客户。这种验证检查的最佳地点在哪里?
首先,从我的角度来看,将这种支票放在我的客户集合中是完全错误的。 其次,在我的 CustomerRepository 中添加此验证也感觉不自然,因为我想在内存集合中将它们视为简单,并且我的所有聚合的逻辑基本相同。 第三,我也不打算在我的 CreateCustomer-Command 中添加这个检查,因为这个重要的检查不在我的域模型之外。
所以我看到的最后一个选项是创建一个 CustomerService 类并将这种验证放在这里。
你还有什么建议吗?我已经阅读了许多其他帖子,但他们并没有真正给出明确的答案......谢谢!