Patrón Facade

¿Qué es el Patrón Facade?

El Facade es un patrón de diseño estructural que proporciona una interfaz simplificada y unificada para un sistema complejo de clases, bibliotecas o subsistemas. Es útil para ocultar la complejidad interna y ofrecer una interfaz fácil de usar.

Código de Ejemplo en JavaScript

            
class SubsystemA {
  operationA() {
    return "SubsystemA: Ejecutando operación A.";
  }
}

class SubsystemB {
  operationB() {
    return "SubsystemB: Ejecutando operación B.";
  }
}

class SubsystemC {
  operationC() {
    return "SubsystemC: Ejecutando operación C.";
  }
}

class Facade {
  constructor() {
    this.subsystemA = new SubsystemA();
    this.subsystemB = new SubsystemB();
    this.subsystemC = new SubsystemC();
  }

  operation() {
    return `
      Facade coordina subsistemas:
      ${this.subsystemA.operationA()}
      ${this.subsystemB.operationB()}
      ${this.subsystemC.operationC()}
    `;
  }
}

// Uso del Patrón Facade
const facade = new Facade();
console.log(facade.operation());

        

Casos de Uso

  • Simplificar el acceso a subsistemas complejos en aplicaciones grandes.
  • Proveer una interfaz unificada para bibliotecas de terceros o APIs complicadas.
  • Facilitar la interacción entre múltiples subsistemas en una aplicación.

Patrones Relacionados

  • Adapter: Convierte interfaces incompatibles, mientras que Facade simplifica la interfaz.
  • Decorator: Extiende funcionalidad, pero no simplifica la interfaz como Facade.
  • Mediator: Coordina la comunicación entre objetos, mientras que Facade coordina subsistemas.
Whatsapp Mentores Tech