我有一个带有应用程序服务的有界上下文,它使用 DTO 公开应用程序用例。
有界上下文还包括一个域服务,它公开了具有丰富域对象的域用例。应用服务是领域服务的“客户”。
最后,允许域对象持久化的存储库。
域中存在其他有界上下文,并且拥有有界上下文的团队之间的关系是客户/供应商,因此团队对齐相同的目标,并且可以合作将所需的用例公开给其他有界上下文。
在这种情况下,“客户有界上下文”应该在哪里连接到“供应商有界上下文”?
“供应商有界上下文”可以直接访问存储库或公开“供应商有界上下文”的丰富域对象的域服务吗?(在“客户有界上下文”中使用 ACL 来保护“供应商有界上下文”免于在域中泄漏)。我不确定这种方法是否良好,因为域重构会破坏所有 ACL 并需要维护。我知道这是 ACL 的目标,但是......
或者“消费者有界上下文”是否最好只连接到“供应商有界上下文”的应用程序服务,其中公开 DTO?(不需要 ACL)。我不确定这种方法是否良好,因为它强制应用程序服务模仿域服务仅作为访问点,即使用例显然是域用例。
有什么意见吗?任何人都尝试过具有好/坏经验的两种方法之一?
我没有从 Vaughn Vernon 的书或 Scott Millett 的书中找到明确的答案。