gpt4 book ai didi

asp.net - DTO 模式策略 - 每个实体有多个 DTO 还是只有一个?

转载 作者:行者123 更新时间:2023-12-02 14:40:13 27 4
gpt4 key购买 nike

我正在使用 DTO 构建我的第一个应用程序 - 我目前有一个 DTO 用于获取特定对象的数据,另一个不同的 DTO 用于更新(PUTting)数据 - 因为只有少数字段可以从任何客户端更新,我决定为 PUT 创建一个专用的 DTO,以避免通过网络发送不必要的数据/字段。就可维护性而言,这是一个好的实践,还是某种禁忌?

最佳答案

对于多个操作使用相同的类型没有问题。也许您有多个 GET,它们出于相似的目的返回相似的数据。在这种情况下,您没有理由不能重用相同的类型。

但是,您已发现 GET 和 PUT 操作需要不同的数据。所以它们不仅操作不同,而且需要的数据也不同。

+----------------+-------------------+--------------------------+
| Similar Data | Similar Purpose | Try to Reuse |
| Similar Data | Different Purpose | Consider; is it logical? |
| Different Data | Similar Purpose | New Type |
| Different Data | Different Purpose | New Type |
+----------------+-------------------+--------------------------+

创建新的 DTO 来满足特定需求还有其他好处,例如:

  • 不要让开发者感到困惑(即使那是您!)
  • 不会打开安全漏洞,从而填充不打算使用的字段

为了更容易:

  • 接口(interface)可用于帮助强制执行类型之间的公共(public)字段。
  • ASP.Net Web API(不确定您是否在问题中使用)对dynamic inputs有强大的支持。这可以消除对 DTO 的需求(尽管以减少编译时类型检查为代价)。

关于asp.net - DTO 模式策略 - 每个实体有多个 DTO 还是只有一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399604/

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