Sitemap
Andrés Mise Olivera

Andrés Mise Olivera

MSc Business Analytics | Software Engineer | Backend Developer (Python & Java)

Diferencia entre DTO, Value Object y Entity

2 min readNov 10, 2022

--

Press enter or click to view image in full size
Photo by Karl Pawlowicz on Unsplash

En el auge de las arquitecturas limpias, CQRS y DDD, a menudo se nombran estos tres tipos de objetos, DTO, VO y Entity, sin dar detalle de cada uno, por lo que a continuación explicaré de forma concisa cada uno de estos.

DTO — Data transfer Object

Un DTO es un objeto de transferencia de datos, es una clase plana que tiene como objetivo enviar datos de un lado a otro. Un DTO no tienen ningún tipo de lógica de negocio ni de validación de datos y espera siempre datos primitos (como enteros, listas y cadenas de texto).

VO — Value Object

Get Andrés Mise Olivera’s stories in your inbox

Join Medium for free to get updates from this writer.

Un Value Object (VO) es un objeto que hace de contenedor de un tipo primitivo, se identifica por el valor que representan y no necesita de un identificador para diferenciarse de otro value object. Un VO es un objeto inmutable, es decir si se llega a modificar deja de ser ese VO. A diferencia de un DTO un VO si contiene lógica de negocio y de validación de datos.

Entidad

Una Entidad es un objeto de negocio que tienen un carácter único, que a diferencia de los VO es mutable y necesita de un identificador, por lo que puede modificar sus atributos y sigue siendo la misma entidad, dado que tiene el mismo identificador.

--

--

Andrés Mise Olivera
Andrés Mise Olivera

Written by Andrés Mise Olivera

MSc Business Analytics | Software Engineer | Backend Developer (Python & Java)