Oscar Dario Florez Diaz
Acerca del ejemplo me surge una duda, el objeto Weather se vuelve dominio por que es un concepto relacionado al dominio de vuelos, pero que pasa cuando la informacion de la fuente externa no esta relacionada con el dominio, deberia contaminar mi dominio con los nuevos atributos y crearlos o como se deberia realizar este tipo de integraciones, quien es el responsable de hacer esta esta llamada a la api externa y como se combinaria con mi dominio?, se deberia utilizar patron adapter o se deberia hacer el merge de mi dominio con la api externa en la capa externa usando un servicio?. Gracias
Manuel Zapata
ProfesorBuenísima tu pregunta, Oscar!
Estamos de acuerdo en que el llamado al API de clima se haría en la capa externa, cierto?
¿Quién sería responsable de hacer el llamado? El dominio. Tendría que recibir como dependencia un objeto que implemente la interfaz de un adaptador del clima, y llamarlo en el momento que necesite la información.
¿Qué pasa con la información de la fuente externa?
En este caso, podemos crear una clase que viva en nuestro dominio, y que tenga estrictamente los campos que se necesitan del API del clima. El adaptador del clima tendría que devolver un objeto de esa clase, para que el dominio la pueda usar.
Ese tipo de objetos se llaman DTOs (Data Transfer Objects), y en este video de mi canal explico más acerca de estos: https://youtu.be/4p6z6hL8BNg
Oscar Dario Florez Diaz
Ok de acuerdo con el uso de los DTOs, pero seguiria siendo valido el uso DTOs incluso si fuera un caso de uso aislado, valdria la pena contaminar mi dominio con conceptos que no hacen parte de el?