在使用 DDD 的分层应用程序中,应在何处声明数据传输对象 (DTO)

Where Should Data Transfer Objects (DTOs) be declared in a layered application using DDD

我曾经在域层中声明我的 DTO。但那是在我后来了解到应用层应该将原语传递给领域层以实例化领域模型实体之前,而不是 DTO。现在我知道了这一点,我对在域层中声明的 DTO 毫无用处。

由于我的应用程序层具有应用程序服务,可以将数据与 DTO 相互转换以将数据传输到各个层,我认为 DTO 也可以在应用程序层中声明。

那么,应用层通常是应该声明 DTO 的地方吗?

提前致谢。

更新:2016 年 2 月 25 日 我将根据 .NET 应用程序体系结构指南第 2 版中的以下引述在应用程序服务层中为我的应用程序服务定义接口:“在服务层中,您定义并实现服务接口和 数据合同"..

因为 DTO 用于将数据从您的应用程序传输到例如客户端应用程序,它们应该在处理对应用程序的服务调用的层(最外层)中声明。将其称为应用层还是其他名称(在我公司我们称之为 'service layer')由您决定。