Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Uso de DTO

Estas en el tema de Uso de DTO en el foro de Java en Foros del Web. ¡Hola a todos! Tengo unas dudas en cuanto al tema de los DTO (Data Transfer Objet), ya que no entiendo muy bien su utilización en ...
  #1 (permalink)  
Antiguo 12/04/2016, 02:18
 
Fecha de Ingreso: febrero-2013
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Uso de DTO

¡Hola a todos!

Tengo unas dudas en cuanto al tema de los DTO (Data Transfer Objet), ya que no entiendo muy bien su utilización en una aplicación.

En mi aplicación tengo creados mis EN (objetos simples) y mis DAO, ya que utilizo una base de datos. Un ejemplo de EN sería este, el EN de usuario:

Código:
public class Usuario {

	private String nombre;
	private int edad;

	public Usuario(){
	}

	public Usuario(String nombre, int edad){
		this.nombre = nombre;
		this.edad = edad;
	}

	//getters & setters

	//equals & hashcode

	//otros métodos auxiliares
}
Entonces... ¿cómo se convertiría esto a un DTO? Y la otra pregunta sería... ¿para qué necesito convertirlo a DTO (marshalling) y luego volverlo a convertir en EN (unmarshalling)?

¡Gracias! Tengo los conceptos algo difusos...
  #2 (permalink)  
Antiguo 12/04/2016, 05:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Uso de DTO

Hola:

Para una clase tan sencilla no es necesario un DTO.

Imagina una aplicación/clase más compleja, normalmente que viene de base de datos, relacionada con otras clases (que lleva dentro Lists o arrays de otras clases) que a su vez pueden llevar otras listas o arrays de más clases, etc, etc.

Por ejemplo, la clase Usuario puede llevar dentro una lista de roles que tiene en la aplicación (administrador, super usuario, usuario), cada uno de estos roles puede tener a su vez una lista de permisos concretos (puede borrar otros usuarios, puede crear informes, puede ...).

Imagina que tienes que pasar esta clase por ejemplo a una interfaz de usuario (normalmente web) o tienes que pasarla a otro servidor a través de algún enlace de comunicación. Si el receptor de esa información no necesita todos esos datos (el usuario, su roles, los permisos de cada usuario, etc, etc), entonces si es habitual hacer un DTO, más simple que la clase original, sólo con los datos que necesite o pueda necesitar, ahorrando darle información innecesaria.

De la misma forma, una interfaz de usuario te enviaría a tí un DTO de usuario, más sencillo que el orginal, con los datos de que disponga esa interfaz de usuario. Cuando le recibas, si lo necesitas, ya te encargas de recrear la clase original con los datos que te han enviado y haciendo consultas a base de datos para el resto.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 12/04/2016, 06:46
 
Fecha de Ingreso: febrero-2013
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Uso de DTO

Muchas gracias por tu respuesta. Ha sido una ayuda muy didáctica :)

Etiquetas: dao
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:51.