domain-driven-design - DDD : Should a Dto Assembler be a part of Domain Layer?

标签 domain-driven-design implementation layer dto project-organization

提前致谢。

我在域层库中有一些聚合。此外,一些 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/

相关文章:

c# - 如何在 cqrs 模式中使用 eventstore

java - 如何在嵌套类中使用泛型正确实现自定义类型的映射

CSS 按顺序排列图层

c# - 关于国际奥委会的问题

java - Spring 中的包名称约定

java - DDD 聚合根,如何创建不同类型的新子聚合元素?工厂方法?

domain-driven-design - DDD 限界上下文集成 - 应用程序服务与领域服务与存储库

python - 使用 Python 的 P2P 应用程序

architecture - 微服务架构 : Chatty services or data duplication

c++ - 当声明 "Implementation"时,什么样的软件是 "Implementation-defined"的一部分? "Implementation"到底是什么?