PATRON PROXY - tectijuana/javapdd16a-Archived GitHub Wiki

Proxy

El patrón proxy tiene como objetivo el diseño de un objeto que sustituye a otro objeto (el sujeto) y controla el acceso. El objeto que realiza la sustitución posee la misma interfaz que el sujeto, volviendo la sustitución transparente de cara a los clientes.

Este patrón es ampliamente utilizado en frameworks cómo Hibernate o Spring AOP,(programacion orientada a aspectos) permitiendo capturar las llamadas a objetos POJO y permitiendo insertar en ellas capacidades de persistencia para el caso de Hibernate, u otro tipo de aspectos como gestión de seguridad o transacciones para Spring AOP.

Diagrama De Clases Del Patrón Proxy:

En este patrón se identifica una interfaz Subject, un objeto RealSubject que es el objeto al que se accede a través del Proxy. El objeto Proxy mantiene una referencia al objeto RealSubject y controla el acceso a sus métodos, intruciendo las capacidades adicionales que fuesen necesarias. Tanto la clase RealSubject como la clase Proxy implementan la interfaz Subject.

Dominios De Aplicación

Los proxys son muy útiles en programación orientada a objetos. Existen distintos tipos de proxy. Vamos a ilustrar tres:

-Proxy virtual: permite crear un objeto de tamaño importante en el momento adecuado.

-Proxy remoto: permite acceder a un objeto ejecutándose en otro entorno. Este tipo de proxy se implementa en sistemas de objetos remotos (CORBA, Java RMI).

-Proxy de protección: permite securizar el acceso a un objeto, por ejemplo mediante técnicas de autenticación.