Proxy

1 Sinopsis

Un cliente no accesa de manera directa al objeto responsable del servicio, sino que utiliza un objeto intermediario, Proxy.

2 Solucion

Un interface comun denominada ServicioIF, la cual define un conjunto de operaciones que el cliente puede invocar. El cliente envia la invocacion de las operaciones al objeto ServicioProxy. Dicho objeto realiza operaciones adicionales, y cuando debe cumplir con el servicio, delega al objeto de tipo Servicio. CDATA[]

3 Consecuencias

Esta operacion resulta transparente para el cliente, ya que el no se da cuenta de que esta trabajando con una copia, el no necesita realizarla.

4 Ejemplo

Se tiene una interfaz de ServicioIF, que proporciona una operacion


public interface ServicioIF  {
    ....
}
See the complete code for ServicioIF here.
void operacion();
public final static ServicioIF SERVICIO = new ServicioProxy();

Y la clase Servicio implante a ServicioIF


public class Servicio implements ServicioIF  {
    ....
}
See the complete code for Servicio here.
public void operacion() {
 System.out.println("Servicio ");
}

Y la clase ServicioProxy implanta tambien a ServicioIF


public class ServicioProxy implements ServicioIF  {
    ....
}
See the complete code for ServicioProxy here.
private ServicioIF svr = new Servicio();
public void operacion() {
 System.out.println("Servicio Proxy ");
 svr.operacion();
}

Y la clase Cliente interactua con el ServicioProxy


public class ClienteProxy  {
    ....
}
See the complete code for ClienteProxy here.
public static void main(String [] args) {
  ServicioIF svr = ServicioIF.SERVICIO;

 svr.operacion();

}