六边形架构中数据仓库接口放在哪一层?

问题描述 投票:0回答:1

如图所示,遵循六边形的架构模式,存储接口似乎被放置在应用层。但根据DDD规范,数据存储接口应该属于领域层。那该怎么办呢?

architecture frameworks domain-driven-design
1个回答
0
投票

你已经得到答案了。各层之间的依赖关系是从外到内。由于数据层的实现(!)位于基础设施的右侧,因此它依赖于核心。

您的域还需要访问存储库,因此接口进入您的核心/域,实现发生在外部。您只需注意不要将任何不属于您的核心域的类型放入接口域中(例如 EF Core 的

Entry<T>
等)。

如果外层对内部层有依赖关系(Repository 接口),这并没有什么问题,但如果您从那里引用接口,它仍然不意味着使用域层。该图片意味着“查询可以绕过域层”(强调“可以”,而不是“必须”),可以直接从控制器访问存储库,而无需通过域。即使在领域中设计接口也是如此,毕竟它只是一个接口。

“查询可以绕过域层”的意思是,您不必使用域或应用程序服务来访问存储库,而是可以直接使用存储库接口。

© www.soinside.com 2019 - 2024. All rights reserved.