Data Transfer Object (DTO)
Definición
El patrón DTO tiene como finalidad de crear un objeto plano (POJO) con una serie de
atributos que puedan ser enviados o recuperados del servidor en una sola invocación, de tal
forma que un DTO puede contener información de múltiples fuentes o tablas y concentrarlas
en una única clase simple.
Contexto
Los clientes de aplicaciones necesitan intercambiar datos entre módulos y
aplicaciones.
Problema
La necesidad de transferir datos de múltiples fuentes de información de un nivel a otro
genera que a menudo el cliente invoque los métodos de obtención varias veces hasta
que obtenga toda la información requerida.
Solución
Se utilizará un objeto plano para transportar múltiples elementos de datos a través de
los niveles.
Estructura
o Diagrama de clase
o Diagrama de secuencia
o Participantes y Responsabilidades
Cliente
El cliente puede ser una aplicación de usuario final, como en el caso de una
aplicación de cliente enriquecida que ha sido diseñada para acceder
directamente a los beans enterprise. El cliente puede ser Business Delegates o
un BusinessObject diferente.
BusinessObject
BusinessObject representa una función en este patrón que puede ser cumplida
por un bean de sesión, un bean de entidad o un objeto de acceso a datos
(DAO). El BusinessObject es responsable de crear el objeto de transferencia y
devolverlo al cliente cuando lo solicite. El BusinessObject también puede
recibir datos del cliente en forma de Objeto de Transferencia y usar esos datos
para realizar una actualización.
TransferObject
El objeto TransferObject es un objeto Java serializable arbitrario denominado
objeto de transferencia. Una clase de Objeto de transferencia puede
proporcionar un constructor que acepte todos los atributos necesarios para
crear el Objeto de transferencia.
o Implementación
gigantesca
Consecuencias
Reduce el tráfico de red.
Simplifica el objeto remoto y la interfaz remota.
Transfiere más datos en menos llamadas remotas
Reduce la duplicación de código
Presenta objetos de transferencia obsoletos
Aumenta la complejidad debido a la sincronización y el control de versiones.