Un cliente no accesa de manera directa al objeto responsable del servicio, sino que utiliza un objeto intermediario, Proxy.
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[]
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.
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(); }