Saltar al contenido
Hugo Teijiz

Biblioteca

Tecnología e IA aplicadaGuía · Avanzado · 8 min · Actualizado: 2026-06-08

Adapter Pattern: integrar sistemas sin contaminar el dominio

Cómo usar Adapter para conectar APIs, ERPs, pagos o servicios externos sin filtrar sus modelos dentro del corazón del sistema.

  • #gof
  • #adapter
  • #integraciones
  • #modernizacion

Resumen ejecutivo

  • Adapter protege el dominio cuando una integración empieza a imponer su lenguaje.
  • La clave es traducir contrato, errores y comportamiento, no solo esconder una API.

El problema real

Las integraciones rara vez fallan solo por HTTP. Fallan porque el modelo del proveedor entra al dominio: nombres raros, estados ajenos, errores opacos y reglas que pertenecen a otro negocio.

Cuando el resto del sistema empieza a hablar como la API externa, la integración dejó de estar aislada.

Qué resuelve Adapter

Adapter traduce una interfaz incompatible a una interfaz propia. No elimina el acoplamiento con el proveedor, pero lo concentra en un borde claro.

Ese borde permite cambiar proveedor, testear fallos y mantener el lenguaje interno estable.

Cómo se ve en código

El dominio pide verificar una cuenta. El adapter se ocupa de traducir request, response y errores del proveedor.

account-verifier.ts
type AccountVerifier = {
  verify(documentId: string): Promise<"approved" | "rejected">;
};

class VendorAccountAdapter implements AccountVerifier {
  constructor(private readonly client: VendorClient) {}

  async verify(documentId: string) {
    const response = await this.client.lookup({ doc_id: documentId });
    return response.status === "OK" ? "approved" : "rejected";
  }
}

Cuándo usarlo

Adapter es especialmente útil en modernización e integraciones:

  • Un ERP o API externa tiene modelos distintos a los del dominio.
  • Querés evitar que errores del proveedor se propaguen por toda la app.
  • Necesitás cambiar o comparar proveedores con menor costo.
  • El sistema interno debe mantener lenguaje propio y estable.

Cuándo evitarlo

Si solo hacés una llamada simple y el modelo externo no se propaga, un wrapper mínimo puede alcanzar. Adapter vale cuando hay traducción real de lenguaje, contrato o comportamiento.

Evidencia relacionada

FAQ

¿Adapter es solo un wrapper?
No siempre. Un wrapper puede esconder una llamada. Un adapter traduce contrato, lenguaje y comportamiento para que el dominio no dependa del proveedor.
¿Dónde debería vivir un adapter?
Normalmente en la capa de infraestructura o integración, cerca del cliente externo y lejos del modelo de dominio.

Artículos relacionados