Patrón Proxy

¿Qué es el Patrón Proxy?

El Proxy es un patrón de diseño estructural que actúa como un intermediario entre un cliente y un objeto real, controlando el acceso al objeto real. Es útil para agregar control adicional, como autenticación, caché o carga diferida.

Código de Ejemplo en JavaScript

            
class RealSubject {
  request() {
    return "RealSubject: Procesando solicitud.";
  }
}

class Proxy {
  constructor(realSubject) {
    this.realSubject = realSubject;
    this.cache = null;
  }

  request() {
    if (!this.cache) {
      console.log("Proxy: Cache vacía. Llamando a RealSubject...");
      this.cache = this.realSubject.request();
    } else {
      console.log("Proxy: Devolviendo resultado en caché...");
    }
    return this.cache;
  }
}

// Uso del Patrón Proxy
const realSubject = new RealSubject();
const proxy = new Proxy(realSubject);

console.log(proxy.request()); // Llama al objeto real
console.log(proxy.request()); // Devuelve el resultado desde la caché

        

Casos de Uso

  • Implementar caché para reducir llamadas repetitivas a un objeto real.
  • Controlar el acceso a un objeto, por ejemplo, en sistemas de autenticación.
  • Cargar objetos pesados de manera diferida para mejorar el rendimiento inicial.

Patrones Relacionados

  • Decorator: Añade funcionalidad, mientras que Proxy controla el acceso al objeto.
  • Adapter: Convierte interfaces incompatibles, mientras que Proxy actúa como intermediario.
  • Facade: Simplifica la interacción con subsistemas, pero no controla directamente el acceso como Proxy.
Whatsapp Mentores Tech