Proxy es un sustituto de otro objeto, para controlar el acceso a él, Proxy actúa en lugar del verdadero objeto y ofrece la misma interfaz, y las solicita en el objeto cuando es necesario.
Características generales de este patrón:
Nombre:
Proxy.
También conocido como:
Surrogate.
Propósito:
Es un sustituto de otro objeto, para controlar el acceso a él.
Aplicabilidad:
Este patrón se utiliza generalmente cuando:
· Es necesario una referencia a un objeto más sofisticada que el simple puntero o referencia a objeto.
· Proxy remoto: Cuando usted necesita un representante local de un objeto en otro espacio de direcciones (JVM).
· 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.
Estructura:

Participantes:
· Subject: Define la interfaz común para el RealSubject y el Proxy, de modo que pueda usarse un Proxy en cualquier sitio en el que se espere un RealSubject.
· RealSubject: Define el objeto real que representa el Proxy.
· Proxy: Mantiene una referencia al sujeto real y proporciona la misma interfaz, controla el acceso al sujeto real y puede ser responsable de crearlo y destruirlo.
Consecuencias:
· Un proxy puede ocultar el hecho de que un objeto reside en un espacio de direcciones diferente (proxy remoto).
· Puede llevar a cabo optimizaciones tales como crear un objeto por encargo (invocar imagen).
· Permiten realizar tareas de mantenimiento adicionales cuando se accede a un objeto (Proxy de protección y de referencias inteligentes).
· Se obtiene una administración transparente de los servicios del objeto real.
Patrones relacionados:
· Adapter.
· Decorator.
· Iterator.
Etiquetas: Patrones Estructurales, Proxy, Structural patterns