【发布时间】:2016-10-15 04:25:11
【问题描述】:
我有一个带有应用程序服务的有界上下文,它通过 DTO 公开应用程序用例。
有界上下文还包括一个域服务,它通过丰富的域对象公开域用例。 Application Service 是 Domain Service 的“客户端”。
最后,允许域对象持久化的存储库。
域中存在其他限界上下文,拥有该限界上下文的团队之间的关系是客户/供应商,因此团队朝着同一个目标保持一致,并且可以合作将所需的用例暴露给其他限界上下文。
在这种情况下,“客户有界上下文”应该在哪里连接到“供应商有界上下文”?
“供应商有界上下文”可以直接访问存储库或公开“供应商有界上下文”的丰富域对象的域服务吗? (在“客户有界上下文”中使用 ACL 来保护“供应商有界上下文”免于在域中泄漏)。我不确定这种方法是否良好,因为域重构会破坏所有 ACL 并需要维护。我知道这是 ACL 的目标,但是...
或者“消费者有界上下文”是否最好只连接到“供应商有界上下文”的应用程序服务,其中公开 DTO? (不需要 ACL)。我不确定这种方法是否良好,因为它强制应用程序服务模仿域服务仅用作访问点,即使用例显然是域用例。
有什么意见吗?有没有人尝试过这两种方法中的一种,有好的/坏的体验?
我没有从 Vaughn Vernon 的书或 Scott Millett 的书中找到明确的答案。
【问题讨论】:
标签: domain-driven-design bounded-contexts