Diferencia entre DTO, Value Object y Entity
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.







