Clases POCO y Clases DTO
Clases
POCO y Clases DTO
A
continuación haré una breve descripción, diferencias y la utilidad
de las clases POCO y DTO.
POCO,
es un termino analogo de POJO, dónde la “J” quiere decir JAVA,
termino fue introducido por Martin Fowler.
Las
clases POCO (Plain Old CLR Object), son clases simples dónde únicamente se define el domino a mantener, esta clase contiene
propiedades y métodos. Estas clases no conocen de frameworks
externos, infraestructura alguna, persistencias, interfaces ni
herencias.
Ejemplo
de una clase POCO:
public
class
Carro
{
public
string
CarroId { get;
set;
}
public
int
Model { get;
set;
}
public
string
Marca { get;
set;
}
public
string
Color { get;
set;
}
public
long
PersonaId { get;
set;
}
public
Carro(string
carroid, int
model, string
marca, string
color, long
personaId)
{
this.CarroId
= carroid;
this.Model
= model;
this.Marca
= marca;
this.Color
= color;
this.PersonaId
= personaId;
}
public
override
string
ToString()
{
return
this.CarroId
+ "
"
+ this.Marca;
}
}
DTO
(Data Transfer Objects), por su
parte es una clase que no posee métodos ni se aplica lógica de
negocios en ella. Esta clase solo define las propiedades con las que
se va a trabajar. Las clases DTO sirven para transferir datos entre
los componentes de un proyecto software o
incluso entre aplicaciones.
Es en este punto dónde entra un poco la confusión entre POCO y DTO,
ya que las clases POCO pueden llegar a ser utilizadas cómo DTO.
Cuándo
utilizar una DTO:
-
Cuándo se requiere tener los datos que se encuentra en N entidades que retorna algún servicio o componente y estos son llamados uno a uno, en vez de realizar los N llamados, se puede realizar un solo llamado que retorne un DTO con la información combinada de las entidades.
-
Cuándo es necesario retornar parte de la información que se encuentra en una entidad y no se desea enviar la entidad completa, para esto se crea un objeto DTO con los valores específicos requeridos.
Ejemplo
de una clase DTO:
public
class
Carro
{
public
string
CarroId { get;
set;
}
public
int
Model { get;
set;
}
public
string
Marca { get;
set;
}
public
string
Color { get;
set;
}
public
long
PersonaId { get;
set;
}
public
Carro()
{
}
public
Carro(string
carroid, int
model, string
marca, string
color, long
personaId)
{
this.CarroId
= carroid;
this.Model
= model;
this.Marca
= marca;
this.Color
= color;
this.PersonaId
= personaId;
}
}
Comentarios
Publicar un comentario