2

我有一个具有 4 层的 N 层 Winforms 应用程序,如下所示:

表示层

应用层

领域层

基础设施层

我的应用程序层有一个产品服务类,用于产品的所有存储库相关操作。

产品服务类的接口文件属于应用层还是领域层?我问是因为我的存储库的接口文件是在域层中定义的,即使它们是在基础设施层中实现的。

提前致谢。

4

2 回答 2

2

服务理念可以属于任何一层。如果您要求应用程序服务,那么这些应该存在于应用程序层中。

另一方面,如果这些服务是直接访问域的服务,那么它们仍然是domain。也就是说,我希望在任何以Domain为前缀的项目中同时找到一个服务接口和一个或多个实现。

顺便说一句,该项目与软件层无关。它只是一个按某些标准对文件进行分组的组织单位。最重要的一点是你的流程应该考虑到控制反转来粘合层。

于 2016-02-27T16:44:07.157 回答
0

使用 DDD,通常建议使用 Dependency Inversion(SOLID 中的 D),因此依赖关系应该是

                      Domain Layer
                            |
                           / \ 
                          /   \
        Presentation Layer     Infrastructure Layer

因此,Presentation 和 Infrastructure “层”取决于您的域,而不是相反(通用版本也称为Hexagonal Architecture 或 Ports and Adapters

应用层确实是您领域的一部分,因为它定义了用例应该如何工作。我从未在应用程序中使用(或见过)应用程序层,但我所做的是将应用程序服务放在同一个工件内的不同中(这里的术语可能有点不同,因为我来自Java 背景)。

于 2016-02-29T10:43:44.953 回答