DDD:Dto汇编器应该是域层的一部分吗?

And*_* K. 5 implementation domain-driven-design project-organization layer dto

提前致谢.

我在域层库中有一些聚合.此外,一些DTO位于单独的库中,在服务器客户端之间共享.

实体的聚合比其DTO更具信息量.因此,为了从DTO转换为Aggregate,Dto汇编程序应该访问存储库.存储库的接口位于域层中.这就是为什么我来的结论,即DtoAssembler应该成为其中的一部分DomainLayer.

这是正确的吗?

the*_*Dmi 8

不,这在DDD背景下是完全错误的.

尝试向(非技术)领域专家询问他对DTO汇编程序的看法.他会用大而疑惑的目光看着你.

DTO(以及它们的汇编程序)是一个技术概念 - 它们在系统的特定接口的上下文中定义数据结构.

存储库主要返回聚合.如果在数据库中查询未在域中建模的统计数据,则存储库也可能返回不可变数据对象.这样做时,请确保您不会意外地错过域概念.

从存储库获取数据后(无论是聚合对象还是数据对象),您可以将其提供给DTO汇编程序.

  • 在大多数情况下,直接将DTO转换为聚合是没有意义的.您确定要使用DDD吗?这听起来很像你正在构建一个CRUD风格的应用程序.我建议你阅读有关DDD应用程序服务的内容.它们适用于您尝试在DtoAssembler中执行的操作. (2认同)