应用服务属于领域层还是应用层?
Does application services belong to domain layer or application layer?
我有一个 N 层 Winforms 应用程序,它有 4 个层,如下所示:
表示层
应用层
领域层
基础设施层
我的应用程序层有一个产品服务 class,用于产品的所有存储库相关操作。
产品服务的接口文件class属于应用层还是领域层?我问是因为我的存储库的接口文件是在域层中定义的,即使它们是在基础结构层中实现的。
提前致谢。
服务概念可以属于任何层。如果你要求应用服务,那么这些应该在应用层。
另一方面,如果这些服务是直接访问域的服务,那么它们仍然是域。也就是说,我希望在任何以 Domain.
为前缀的项目中找到服务接口和一个或多个实现
顺便说一句,该项目 与软件层无关。它只是一个根据某些标准对文件进行分组的组织单元。最重要的一点是你的流程应该考虑到粘合层的控制反转。
对于DDD,通常推荐使用Dependency Inversion(SOLID中的D),所以依赖的tree应该是
Domain Layer
|
/ \
/ \
Presentation Layer Infrastructure Layer
因此表示和基础结构 "layers" 取决于您的域,而不是相反(通用版本也称为 Hexagonal Architecture or Ports and Adapters)
应用层确实是您领域的一部分,因为它定义了用例应该如何工作。我从未在应用程序中使用(或见过)应用程序层,但我所做的是将应用程序服务放在同一工件内的不同 package 中(这里的术语可能有点不同,因为我来自 Java 背景)。
我有一个 N 层 Winforms 应用程序,它有 4 个层,如下所示:
表示层
应用层
领域层
基础设施层
我的应用程序层有一个产品服务 class,用于产品的所有存储库相关操作。
产品服务的接口文件class属于应用层还是领域层?我问是因为我的存储库的接口文件是在域层中定义的,即使它们是在基础结构层中实现的。
提前致谢。
服务概念可以属于任何层。如果你要求应用服务,那么这些应该在应用层。
另一方面,如果这些服务是直接访问域的服务,那么它们仍然是域。也就是说,我希望在任何以 Domain.
为前缀的项目中找到服务接口和一个或多个实现顺便说一句,该项目 与软件层无关。它只是一个根据某些标准对文件进行分组的组织单元。最重要的一点是你的流程应该考虑到粘合层的控制反转。
对于DDD,通常推荐使用Dependency Inversion(SOLID中的D),所以依赖的tree应该是
Domain Layer | / \ / \ Presentation Layer Infrastructure Layer
因此表示和基础结构 "layers" 取决于您的域,而不是相反(通用版本也称为 Hexagonal Architecture or Ports and Adapters)
应用层确实是您领域的一部分,因为它定义了用例应该如何工作。我从未在应用程序中使用(或见过)应用程序层,但我所做的是将应用程序服务放在同一工件内的不同 package 中(这里的术语可能有点不同,因为我来自 Java 背景)。