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.