当前位置: 首页 > 面试题库 >

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

陈渊
2023-03-14
问题内容

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

为什么?有哪些选择?


问题答案:

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

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



 类似资料:
  • 我正在寻找一种从JPA实体创建数据传输对象(DTO)的好方法,反之亦然。我想将DTO作为JSON发送到客户机,然后接收修改后的DTO并将其保存回数据库。在接收到的对象从JSON解析到它的Java类之后,从EntityManager对其执行merge方法将是最容易的。  例如,有以下实体和用于保存修改对象的Rest方法: 只要我将整个实体类作为JSON发送并接收回整个实体,就可以很好地工作。然后En

  • 主要内容:实现,步骤 1,StudentVO.java,步骤 2,StudentBO.java,步骤 3,TransferObjectPatternDemo.java,步骤 4传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 PO

  • 传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 POJO,并把它发送到客户端或按值传递它。对于客户端,传输对象是只读的。客户端可

  • 传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 POJO,并把它发送到客户端或按值传递它。对于客户端,传输对象是只读的。客户端可

  • 问题内容: 关于如何在Hibernate实体和Web服务要返回的数据传输对象之间进行转换,我也有类似的问题和疑虑,如以下问题所述: 此处提到的因素之一是,如果域模型发生更改,则在Web服务的情况下,一组DTO将保护使用者。 即使看起来它将为我的项目添加大量代码,这种推理也似乎是合理的。 是否可以使用一种好的设计模式将一个Hibernate实体(实现一个接口)转换为一个实现相同接口的DTO? 因此,

  • 问题内容: 在我的DAO层中,我有一个类似的Find函数 因此,为了读取数据,我必须使用Loop(带有) 我的问题是:是否有任何api框架可以轻松地将其转换为对象列表(例如DQCategoryDTO),而无需使用任何循环,迭代器和调用setter / getter来填充值? 问题答案: 您可以使用ResultTransformer,它可以从别名转换为bean(DTO)属性。对于用法,您可以在此处的