El objeto de transferencia de datos (DTO) es uno de los patrones de diseño utilizados para transferir datos entre subsistemas de aplicaciones.
Un objeto de transferencia de datos, a diferencia de un objeto comercial o un objeto de acceso a datos , no debe contener ningún comportamiento.
En Enterprise JavaBeans , DTO se utiliza para la serialización .
Los beans de entidad representan objetos que residen en almacenamiento persistente, como una base de datos . Por un lado, esto es muy conveniente, ya que el programa cliente no tiene que preocuparse por conectarse directamente a la base de datos. Por otro lado, cada cambio en el bean de entidad puede llamar a métodos de acceso remoto, lo que aumenta la carga en la red y reduce la velocidad del programa. Sun Java Center recomendó resolver este problema aislando todos los datos en un objeto separado y pasando este objeto al bean de entidad en un solo método.
En EJB 3.0, se cambió el modelo de entrada de datos, se resolvió este problema y se eliminó la necesidad de un DTO.
No confunda DTO con Value Object: estos son patrones diferentes. La confusión proviene del hecho de que la literatura J2EE anterior usaba el término "Objeto de valor" para describir los DTO, pero luego fue reemplazado por "Objeto de transferencia".