stringtranslate.com

Patrón de proxy

En programación de computadoras , el patrón proxy es un patrón de diseño de software . Un proxy , en su forma más general, es una clase que funciona como interfaz para otra cosa. El proxy podría interactuar con cualquier cosa: una conexión de red, un objeto grande en la memoria, un archivo o algún otro recurso que sea costoso o imposible de duplicar. En resumen, un proxy es un objeto contenedor o agente al que el cliente llama para acceder al objeto de servicio real detrás de escena. El uso del proxy puede ser simplemente reenviar al objeto real o puede proporcionar lógica adicional. En el proxy, se pueden proporcionar funciones adicionales, por ejemplo, almacenamiento en caché cuando las operaciones en el objeto real requieren muchos recursos, o verificar las condiciones previas antes de invocar las operaciones en el objeto real. Para el cliente, el uso de un objeto proxy es similar al uso del objeto real, porque ambos implementan la misma interfaz.

Descripción general

El patrón de diseño Proxy [1] es uno de los veintitrés patrones de diseño GoF bien conocidos que describen cómo resolver problemas de diseño recurrentes para diseñar software orientado a objetos flexible y reutilizable, es decir, objetos que son más fáciles de implementar, cambiar, probar y reutilizar.

¿Qué problemas puede resolver el patrón de diseño Proxy? [2]

Al acceder a objetos sensibles, por ejemplo, debería ser posible comprobar que los clientes tengan los derechos de acceso necesarios.

¿Qué solución describe el patrón de diseño Proxy?

Defina un Proxyobjeto separado que

Esto hace posible trabajar a través de un Proxyobjeto para realizar funciones adicionales al acceder a un tema. Por ejemplo, para verificar los derechos de acceso de los clientes que acceden a un objeto confidencial.

Para actuar como sustituto de un sujeto, un proxy debe implementar la Subjectinterfaz. Los clientes no pueden saber si trabajan con un sujeto o su proxy.

Consulte también el diagrama de secuencia y clase UML a continuación.

Estructura

Diagrama de secuencia y clase UML

Un ejemplo de diagrama de secuencia y clase UML para el patrón de diseño Proxy. [3]

En el diagrama de clases UML anterior , la clase implementa la interfaz para que pueda actuar como sustituto de los objetos. Mantiene una referencia ( ) al objeto sustituido ( ) para poder enviarle solicitudes ( ). ProxySubjectSubjectrealSubjectRealSubjectrealSubject.operation()

El diagrama de secuencia muestra las interacciones en tiempo de ejecución: el Clientobjeto funciona a través de un Proxyobjeto que controla el acceso a un RealSubjectobjeto. En este ejemplo, Proxyreenvía la solicitud a RealSubject, quien realiza la solicitud.

Diagrama de clase

Proxy en UML
Proxy en LePUS3 (leyenda)

Posibles escenarios de uso

proxy remoto

En la comunicación de objetos distribuidos , un objeto local representa un objeto remoto (uno que pertenece a un espacio de direcciones diferente). El objeto local es un proxy para el objeto remoto y la invocación de un método en el objeto local da como resultado una invocación de un método remoto en el objeto remoto. Un ejemplo sería una implementación de cajero automático , donde el cajero automático podría contener objetos proxy para la información bancaria que existe en el servidor remoto.

proxy virtual

En lugar de un objeto complejo o pesado, en algunos casos puede resultar ventajosa una representación esquelética. Cuando una imagen subyacente tiene un tamaño enorme, se puede representar utilizando un objeto proxy virtual, cargando el objeto real a pedido.

Proxy de protección

Se podría utilizar un proxy de protección para controlar el acceso a un recurso en función de los derechos de acceso.

Ver también

Referencias

  1. ^ Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1994). Patrones de diseño: elementos de software reutilizable orientado a objetos . Addison Wesley. págs. 207 y siguientes. ISBN 0-201-63361-2.{{cite book}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  2. ^ "El patrón de diseño de Proxy: problema, solución y aplicabilidad". w3sDesign.com . Consultado el 12 de agosto de 2017 .
  3. ^ "El patrón de diseño de Proxy: estructura y colaboración". w3sDesign.com . Consultado el 12 de agosto de 2017 .

enlaces externos