DEV Community

Cover image for Patrón Proxy: Una introducción teórica
Sebastian Noguera
Sebastian Noguera

Posted on

Patrón Proxy: Una introducción teórica

Este post forma parte de una serie en la que estaremos desglosando uno por uno los distintos patrones de diseño de manera teórica en un blog post. Además, subiré la explicación práctica a mi canal de YouTube. ¡No olvides seguirme para no perderte este interesante contenido! 😁

En el desarrollo de software, el patrón Proxy es un patrón de diseño que proporciona un objeto intermediario para controlar el acceso a otro objeto. El objetivo principal del Proxy es agregar una capa adicional de indirección y control sobre una funcionalidad existente.

El Proxy actúa como un sustituto o representante del objeto real, permitiendo controlar el acceso a dicho objeto y agregar funcionalidades adicionales si es necesario. Esto puede ser útil en situaciones donde se requiere una validación previa, un manejo de caché o una restricción en el acceso a ciertos recursos.

3 personas en las que actúa un intermediario

Estructura del patrón Proxy

El patrón Proxy se compone de los siguientes elementos:

  • Sujeto: Es la interfaz común que define tanto al Sujeto Real como al Proxy. Define las operaciones que el Proxy puede realizar en nombre del Sujeto Real.

  • Sujeto Real: Es el objeto real al cual el Proxy proporciona acceso controlado. Contiene la implementación concreta de las operaciones definidas en el Sujeto.

  • Proxy: Es el objeto intermediario que implementa la misma interfaz que el Sujeto Real. Controla el acceso al Sujeto Real y puede realizar tareas adicionales antes o después de llamar al Sujeto Real.

Aplicabilidad del patrón Proxy

El patrón Proxy es aplicable en diversas situaciones, tales como:

  • Control de acceso: El Proxy puede verificar y autorizar el acceso a un objeto antes de permitir que se realice una operación.

  • Carga diferida (Lazy loading): El Proxy puede retrasar la creación o carga de un objeto hasta que sea realmente necesario, mejorando así el rendimiento.

  • Caché: El Proxy puede almacenar en caché los resultados de operaciones costosas y devolverlos directamente en futuras solicitudes.

  • Logging: El Proxy puede agregar registros o realizar un seguimiento detallado de las operaciones realizadas en el Sujeto Real.

Cuando NO utilizar el patrón Proxy

El patrón de diseño Proxy no es adecuado para todos los casos. A continuación, se muestran algunos escenarios en los que no se debe utilizar el patrón Proxy:

  1. Cuando el rendimiento es un problema: El proxy puede agregar una capa adicional de indirección, lo que puede afectar al rendimiento de la aplicación.

  2. Cuando el objeto real es simple: Si el objeto real es simple, no es necesario utilizar un proxy.

  3. Cuando el proxy no proporciona ninguna funcionalidad adicional: Si el proxy no proporciona ninguna funcionalidad adicional, no es necesario utilizarlo

😁 Si este post te ha gustado, puedes seguirme en mi canal de YouTube en el cual subo contenido relacionado a la programación 🐢

Top comments (0)