【问题标题】:POCO vs DTO: Is it ok to partially hydrate a domain object?POCO vs DTO:可以对域对象进行部分水合吗?
【发布时间】:2010-10-23 23:23:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: domain-driven-design poco dto


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多