Patrones Estructurales_Proxy

Patrón Proxy

Se le conoce también como Virtual Proxy, Surrogate o apoderado.

Intención


Es un sustituto de otro objeto, para controlar el acceso a él.

Aplicabilidad

Cuando es necesario una referencia a un objeto más sofisticada que el simple puntero o referencia a objeto.
  • Proxy remoto, cuando el objeto está en otro espacio de memoria (proceso).
  • Proxy virtual, para postergar la creación de objetos caros hasta el momento en que se necesitan.
  • Proxy de protección, para controlar el acceso al objeto original.
  • Referencias inteligentes, remplazan a una referencia o puntero para realizar alguna acción adicional.
Estructura
Participantes

Subject: Interfaz o clase abstracta que proporciona un acceso común al objeto real y su representante (proxy).
Proxy: Mantiene una referencia al objeto real. Controla la creación y acceso a las operaciones del objeto real.
RealSubject: Define el objeto real representado por el Proxy.

Consecuencias
  • Control previo a un objeto.
  • Se pueden realizar operaciones sobre el objeto de forma más eficiente/inteligente.
  • Introduce un nivel de indirección al acceder a un objeto.
Patrones relacionados
  • El patrón Proxy se puede ver como un caso particular de Bridge:
Proxy sólo tiene una implementación, y un Bridge puede tener más de una.
Proxy se suele usar para controlar el acceso a su implementación, el Bridge permite cambiar una implementación dinámicamente.
  • Adapter proporciona una interfaz diferente al objeto que adapta, pero el proxy tiene la misma interfaz.
Aunque el proxy puede rehusar realizar una operación (así su interfaz puede verse como un subconjunto).
  • Decorador se puede implementar de manera similar al Proxy pero el propósito es diferente: el decorador añade responsabilidades a un objeto, el proxy sólo controla su acceso.

No hay comentarios:

Publicar un comentario