【发布时间】:2019-06-27 21:18:24
【问题描述】:
我已阅读有关聚合的创建和职责的信息,但我对如何正确实施它们感到怀疑。假设我们有 2 个实体的上下文。一个是公司,第二个是用户。业务规则在公司实体中,这意味着这应该成为聚合根。对于公司,我们只能分配 3 个用户,当 Comapny 的状态为“被阻止”时,我们不能分配用户。用户也可以使用电子邮件和密码登录。考虑到这一点,用户实体上的每个操作都应该通过聚合根调用,用户不应该有自己的存储库。当没有公司根用户无法直接登录时,如何对用户进行登录操作?我们不能从聚合中调用 User。如何使用提供的电子邮件和密码查找用户?获取所有聚合并迭代其用户效率低下,我认为这不是一个好主意。 谢谢你的帮助。
【问题讨论】:
-
感觉这里有 2 BC。一个是管理凭据的 IdentityContext,另一个是 CompanyManagementContext。关于授权。它是否可以成为 IdentityContext 的一部分是一个棘手的部分。您应该分析如何将授权规则耦合到 CompanyManagementContext。也许它应该存在于 CompanyManagementContext 中。
标签: domain-driven-design aggregate