Skip to content

MaxiCorrea/java-hexagonal-architecture-mapping-between-boundaries

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Patrones de Mapeo entre Capas

Este documento explica los diferentes enfoques para mapear modelos entre capas (web, aplicación, dominio, persistencia) en el desarrollo de software.

📌 Estrategias

1️⃣ Full Mapping

📝 ¿Qué es?
Cada capa tiene su propio modelo, con mapeo explícito entre ellos.

✅ Ventajas:

  • Máxima separación de responsabilidades
  • Evita acoplamientos indeseados
  • Ideal para testing y evolución independiente

⚠️ Desventajas:

  • Mucho código de mapeo (boilerplate)
  • Desarrollo más lento inicialmente

🎯 Usar cuando:

  • Dominios complejos (reglas de negocio intensas)
  • Necesidad de máximo desacoplamiento
  • Equipos grandes o microservicios separados

🚫 No Mapping

📝 ¿Qué es?
Mismo modelo en todas las capas (DTOs = entidades).

✅ Ventajas:

  • Implementación súper rápida
  • Fácil comprensión para equipos pequeños
  • Ideal para CRUDs simples

⚠️ Desventajas:

  • Alto acoplamiento entre capas
  • Difícil mantenimiento a largo plazo

🎯 Usar cuando:

  • Desarrollo de MVP/prototipos
  • Backends administrativos simples
  • Proyectos con poca evolución prevista

🔄 Two-Way Mapping

📝 ¿Qué es?
Mapeo bidireccional (DTO ⇄ Entidad), usualmente con interfaces compartidas.

✅ Ventajas:

  • Permite modificación de objetos existentes
  • Útil para flujos de ida y vuelta

⚠️ Desventajas:

  • Riesgo de diseño confuso
  • Posible acoplamiento accidental

🎯 Usar cuando:

  • Validaciones con feedback
  • Uso de ORMs como Hibernate
  • Casos de uso con updates frecuentes

➡️ One-Way Mapping

📝 ¿Qué es?
Transformación unidireccional con interfaz común (ej: AccountState).

✅ Ventajas:

  • Flujo de datos claro (una dirección)
  • Evita ciclos de dependencia
  • Menos clases que Full Mapping

⚠️ Desventajas:

  • Menos desacoplado que Full Mapping
  • Posible duplicación de lógica

🎯 Usar cuando:

  • Arquitectura limpia pero práctica
  • Equipos que buscan equilibrio velocidad/orden
  • Dominios moderadamente complejos

📊 Resumen de Estrategias

Estrategia Casos de Uso Ideales Complejidad
Full Mapping Dominios complejos, equipos grandes, sistemas críticos Alta
No Mapping MVPs, CRUDs simples, prototipos Baja
Two-Way Formularios editables, integración con ORMs Media-Alta
One-Way Dominios moderados, buen equilibrio Media

💡 Recomendación: Elegir según complejidad del proyecto y necesidades de desacoplamiento

Releases

No releases published

Packages

No packages published

Languages