猿问

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

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


为什么?有哪些选择?


温温酱
浏览 450回答 3
3回答

一只萌萌小番薯

有些项目的所有数据都有两次。一次作为域对象,一次作为数据传输对象。这种重复需要付出巨大的代价,因此该体系结构需要从这种分离中获得巨大的收益才能使其值得。

慕桂英4014372

DTO不是反模式。通过网络发送一些数据(例如,通过Ajax调用发送到网页)时,您要确保仅通过发送目标将使用的数据来节省带宽。同样,对于表示层来说,以与本机业务对象略有不同的格式存储数据通常很方便。我知道这是一个面向Java的问题,但是在.NET语言中,匿名类型,序列化和LINQ允许即时构建DTO,从而减少了设置和使用它们的开销。

拉丁的传说

DTO EJB 3.0中的AntiPattern表示:在EJB 3.0之前的EJB规范中,实体Bean具有沉重的性质,导致使用了诸如数据传输对象(DTO)之类的设计模式。DTO成为了轻量级对象(首先应该是实体Bean本身),用于跨层发送数据...现在EJB 3.0规范使Entity Bean模型与普通旧Java对象(POJO)相同。使用这个新的POJO模型,您将不再需要为每个实体或一组实体创建DTO ...如果要跨层发送EJB 3.0实体,则使它们只需实现java.io.Serialiazable
随时随地看视频慕课网APP

相关分类

Java
我要回答