提前致谢。
我在域层库中有一些聚合。此外,一些 DTO 在单独的库中,在服务器端和客户端之间共享。
实体的聚合比其 DTO 提供更多信息。因此,为了从 DTO 转换为聚合,存储库应该由 Dto 汇编程序访问。存储库的接口(interface)位于域层中。这就是为什么我得出结论认为 DtoAssembler 应该是 DomainLayer 的一部分。
这是正确的吗?
最佳答案
不,这在 DDD 的上下文中是完全错误的。
尝试询问(非技术)领域专家他对 DTO 汇编器的看法。他会用大大的、疑问的眼睛看着你。
DTO(以及它们的汇编程序)是一个技术概念——它们在系统特定接口(interface)的上下文中定义数据结构。
存储库主要返回聚合。如果您在数据库中查询未在您的域中建模的统计数据,则存储库也可能返回不可变数据对象。只需确保在执行此操作时不会意外丢失域概念。
一旦从存储库中获得数据(无论是聚合还是数据对象),您就可以将其输入 DTO 汇编器。
关于domain-driven-design - DDD : Should a Dto Assembler be a part of Domain Layer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895762/