gpt4 book ai didi

domain-driven-design - POCO 与 DTO : Is it ok to partially hydrate a domain object?

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

通常需要在 UI 上以各种方式显示域对象;列表、搜索结果、查看和编辑页面,以及页眉、页脚和弹出窗口。通常,域对象有几个不同的“ View ”,每个 View 都显示不同的字段。

大多数建议似乎是在您需要子集或超集时使用 DTO 来获取数据。维护 DTO 有很多开销。简单地填充每个场景所需的域对象的属性是否是一种不好的方法。例如,您可以使用配置文件来说明应该包含哪些属性,例如:

service.GetDomainObjects(int listID, Profile.ListProfile);
service.GetDomainObjects(string searchParam, Profile.SearchProfile);

最佳答案

对我来说,这归结为您希望开销在哪里,或者您将拥有一组不同的类来表示您的 DTO,或者您将拥有一组方法,每个方法都返回相同的域对象,但是不同的领域被“水化”。

我会问几个问题来帮助做出决定:

  • 为整个物体补水的开销是多少?增加的复杂性(DTO 或部分水合的对象)真的值得吗?
  • 其他人会使用您的代码吗?您不要将人们与部分水合对象混淆,当人们来维护您的代码时,DTO 可能会更清楚。

  • 我个人对 DTO 有点偏爱,因为我觉得你的系统的长期维护会更容易。如果你是一个单人乐队,或者这是一个一次性的应用程序,我完全可以理解不想引入一堆会使你的代码变得困惑的额外类。

    关于domain-driven-design - POCO 与 DTO : Is it ok to partially hydrate a domain object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/825843/

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