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.