为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

温温酱 2019-11-06 10:29:59
我最近听到有人说数据传输对象(DTO)是一种反模式。为什么?有哪些选择?
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

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

这种重复需要付出巨大的代价,因此该体系结构需要从这种分离中获得巨大的收益才能使其值得。


查看完整回答
反对 回复 2019-11-06
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

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

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


查看完整回答
反对 回复 2019-11-06
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-11-06
  • 3 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信