gpt4 book ai didi

DTO : best practices

转载 作者:行者123 更新时间:2023-12-03 13:35:09 34 4
gpt4 key购买 nike

我正在考虑使用 DTO 而不是传递我的域对象。我在这里和其他地方都读过几篇文章,我知道有几种方法可以完成这项工作。

如果我总共只有大约 10 个域类,并且考虑到我想在我的 View (WPF 前端)中使用 DTO 而不是域对象,那么推荐的方法是什么。
我认为使用像 automapper 等工具可能对我的情况来说有点矫枉过正。所以我正在考虑编写我的自定义映射器类,该类将具有将域类型转换为 DTO 类型的方法。

这样做的最佳方法是什么,是否有任何示例可以让我开始这样做?

第二个问题:在编写那些将创建 DTO 的方法时,我如何处理设置所有数据,尤其是当域类型引用其他域对象时?我是否在 DTO 中编写了等效的属性以映射到域类中的那些引用类型?
请问我是否没有用正确的话来表达我的第二个问题。但我想你明白我想问什么。

第三个问题:在编写 DTO 时,我是否应该编写多个 DTO,每个 DTO 都包含给定域模型的部分数据,以便每个 DTO 都可以用于满足特定 View 的要求,或者 DTO 是否应该拥有所有数据在相应的模型类中。

最佳答案

我在这里阅读了一些关于 DTO 的帖子,在我看来,很多人将它们等同于我认为的 ViewModel。 DTO 就是数据传输对象——它是通过网络传递的。所以我有一个网站和服务,只有服务才能访问真正的域/实体对象,并返回 DTO。这些可能是 1:1 映射,但考虑到 DTO 可能是从另一个服务调用、数据库查询、读取配置中填充的 - 无论如何。

之后,网站可以采用这些 DTO 并将它们添加到 ViewModel,或转换为一个。该 ViewModel 可能包含许多不同类型的 DTO。一个简单的例子是任务管理器 - ViewModel 包含您正在编辑的任务对象,以及可以分配任务的一组 Dto.User 对象。

请记住,返回 DTO 的服务可能同时被网站使用,也可能被平板电脑或手机应用程序使用。这些应用程序将有不同的 View 来利用它们的显示,因此 ViewModel 会有所不同,但 DTO 将保持不变。

无论如何,我喜欢这些类型的讨论,所以任何人都请告诉我你的想法。

马特

关于DTO : best practices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1385710/

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