在更高的层上编写接口是否被视为一种好习惯?

问题描述

我当时认为最好在“应用程序”层(业务)上编写工作单元的接口及其在“持久性”层(DAL)上的实现。目的是使各层尽可能地分离。

想象一下您决定将DAL从EF核心更改为Dapper的情况。这种过渡将如何减轻痛苦?最好让界面宣布“我需要这个查询,那个以及那个,以便开展我的业务”,然后将其映射到新的数据访问层,这样更好吗?

解决方法

您的想法是正确的,它将使您的业务逻辑成为重点,并将技术细节转化为业务逻辑的插件。

另请参见Robert C. Martin的“清洁建筑”,以更深入地了解同一个方向。

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html