Inicio » Comunidad » Consultar información entre módulos

Consultar información entre módulos

Resuelto Cerrado
0
0

Hola!

Tengo una duda, estoy aplicando la arquitectura hexagonal y encapsulando la lógica en diferentes módulos.

Pero tengo un problema que para obtener cierta información tengo que consultarlo a otro módulo diferente .

Por ejemplo, tengo el módulo User y el módulo payments, pero en payments hay una funcionalidad que necesita cierta información del usuario.

Mi pregunta es, hay alguna forma de obtener la información del usuario sin acoplar el módulo?

Mejor respuesta
0
0

Hola Álex!

El acoplamiento entre módulos va a existir siempre que haya comunicación entre ellos. Lo importante es buscar un acoplamiento bajo, de esta manera te será más fácil hacer cambios conforme tu aplicación vaya creciendo. El bajo acoplamiento entre módulos se consigue creando un único punto de acoplamiento localizado en infraestructura y modelando los datos recibidos, a través de una ACL, a conceptos que el propio módulo entiende. Con lo cual, en la capa de infraestructura del módulo user debes crear una punto de salida para exponer aquellos datos que te interesan y en la capa infraestructura del módulo payment debes crear un punto de entrada de datos. Por ejemplo, en el módulo user puedes utilizar el patrón fachada para exponer aquellos datos que te interesan y en el módulo payment llamarla. Eso sí, no te olvides de utilizar la ACL dentro del módulo payment para modelar aquellos conceptos y no contaminar el dominio de payment con datos del módulo user. Una alternativa a la fachada sería utilizar el patrón bus para lanzar una query desde el módulo payment y así reutilizar el código que ya existe en el módulo user. El problema de este enfoque es que oculta más la dependencia entre ambos módulo. Por tanto, puedes hacer cambios que afecten al módulo sin darte cuenta.

0
0

Perfecto,  ¡Muchas gracias! :).

2 resultados
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad