Pregunta

En la capa de dominio o la capa de acceso de datos?

¿Fue útil?

Solución

La principal motivación para DTO es presentar una interfaz adaptada a otra capa (típicamente, la capa de presentación). Por ejemplo, una pantalla de entrada de datos puede necesitar algunos bits de datos de un objeto de usuario en adición a algunos bits de un pedido, etc. En ese caso, el dominio al DTO debe suceder en la capa que invoca la capa de presentación, es decir, típicamente una capa de "servicio".

Hay bibliotecas como bulldozer por ahí que automatizan el trabajo sucio de la conversión entre modelos de dominio y dtos.

La clave quitan es DTOs tienen el propósito de abstraer los datos (no lógica de negocio) de más ricos objetos del modelo de dominio - Por lo tanto, DTOs deben ser convertidas de nuevo al dominio objetos tan pronto como sea posible (en la capa de servicio) por lo que el resto de sus capas de aplicación pueden trabajar con objetos de dominio más ricos (los datos y la lógica de negocio)

Otros consejos

No soy mucho de un ventilador de dtos, pero yo digo que no lo haga en la capa de datos. Las ofertas de la capa de datos con los objetos del modelo y su persistencia. ¿Por qué la pareja con otras capas de traer dtos en ella? Me mapa a otro lugar, probablemente entre los servicios y niveles de interfaz de usuario, justo en el punto donde se cruzan la frontera entre donde están creados y donde se utilizan.

El poner esto en contexto MVC, tanto si tiene los controladores y los servicios de la capa que debe ponerlo en el controlador. Esto haría un DTO más cerca de la capa de vista y permitir que la capa de servicio juegue con sólo objetos de dominio, evitando posibles confusiones con otros modelos.

El DTO sí es en realidad el modelo MVC (explicado aquí: https://stackoverflow.com/a/1058186 ).

A continuación se muestra un tutorial recomendado que aplasta el controlador, capa de servicios y conceptos DTO juntos (en Java utilizando el framework Spring, pero el concepto es claro para otras plataformas): https: //www.baeldung. com / entidad-a-y-de-dto-de-un-java-primavera-aplicación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top