gpt4 book ai didi

domain-driven-design - 数据传输对象、域对象和存储库

转载 作者:行者123 更新时间:2023-12-04 08:23:20 24 4
gpt4 key购买 nike

我试图弄清楚所有这些是如何协同工作的。我知道 DTO 基本上只是域对象来回传递给表单等的数据容器。域对象是否包含 DTO 或 DTO 和域对象恰好具有将手动映射的所有相同属性?

如果我在服务中公开我的 DTO 类型,如何在不为客户端上的每个 get/set 操作创建往返的情况下使用 getter 和 setter?我知道你可以有一个很长的构造函数,但是如果你有超过 7 个属性,那会变得很丑。

在实现存储库模式时,我是传入 DTO 还是域对象?

最佳答案

  • DTO 和域对象应该是分开的。
  • 应该有一个映射器将 DTO 映射到域对象,并将域对象映射到 DTO。这个映射器应该是一个接口(interface)的实现,默认映射器使用反射将对象相互映射。
  • 存储库应该是一个返回域对象的服务,域对象本身应该提供服务。
  • 如果 DTO 是由 Web 服务公开的类,则创建的 WSDL 将属性定义为元素,而在另一端创建的代理仅创建在客户端本身上运行的 getter/setter 属性,因此 getter 和 setter 不会导致往返。
  • 即使您只是在 DTO 中创建一个公共(public)变量,代理也将作为 getter 和 setter 实现。
  • 关于domain-driven-design - 数据传输对象、域对象和存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274484/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com