6

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

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

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

4

1 回答 1

3

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

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

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

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

于 2009-05-15T10:26:08.310 回答