为什么数据传输对象 (DTO) 是一种反模式?

新手上路,请多包涵

我最近听到有人说 数据传输对象(DTO) 是一种 _反模式_。

为什么?有哪些选择?

原文由 ntownsend 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 367
2 个回答

有些项目的所有数据都有两次。一次作为域对象,一次作为数据传输对象。

这种 重复有巨大的成本,所以架构需要从这种分离中获得巨大的好处,才值得。

原文由 KLE 发布,翻译遵循 CC BY-SA 2.5 许可协议

DTO 不是反模式。当您通过网络发送一些数据时(例如,发送到 Ajax 调用中的网页),您希望通过仅发送目的地将使用的数据来确保节省带宽。此外,对于表示层来说,使用与本机业务对象格式略有不同的数据通常很方便。

我知道这是一个面向 Java 的问题,但在 .NET 语言中,匿名类型、序列化和 LINQ 允许动态构建 DTO,这减少了使用它们的设置和开销。

原文由 Gabe Moothart 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题