Este blog inicio con la idea de construir un código ordenado,
de hacer que nuestro código tuviera una mayor calidad, y hacer que el
mantenimiento del mismo fuera menos costoso, nació porque hay muchas
habilidades que debe tener un arquitecto antes de poder modelar una
arquitectura de un sistema.
La sección de patrones de diseño se creó para brindar
herramientas para evitar ese código salvaje, la sección sigue vigente, pero el
blog ha crecido y junto con él se han incorporado nuevas secciones.
Pero hoy retomaremos los patrones de diseño, vamos a hablar
de un patrón, que es muy sencillo porque su uso es muy común, tan común que
mucha gente que no es desarrolladora, entiende el concepto o lo han usado
principalmente para conectarse a internet, me refiero al patrón Proxy.
¿Qué hace el patrón proxy?, El patrón proxy juega como un
intermediario que permite la creación y acceso de un objeto a otros, es decir
me sirve como un puente entre objetos, su aplicación más común es el uso de
proxies en internet, para acceder a paginas o para limitar el tráfico a las
mismas.
Tratemos de ilustrar el patrón:
Contamos con una interfaz en la que se definen las tareas
que se realizaran, esta interfaz se encuentra implementada tanto en el Proxy
como en el objeto real.
El cliente consumirá la interfaz, de esta forma el Proxy se podrá
agregar como intermediario sin necesidad de efectuar modificaciones en nuestro
cliente.
Cuando el cliente efectué una llamada, nuestro cliente
primero ira al proxy, en donde se puede agregar funcionalidad, después de eso
el proceso se ira al objeto real.
Existen muchos tipos de proxy, entre los más comunes se
puede mencionar:
Proxies Virtuales: Manejan la creación de objetos, en muchos
casos hay objetos que requieren un tiempo muy elevado para su creación, este
tipo de proxies pueden asumir la identidad del objeto como si ya estuviera creado,
en lo que el verdadero objeto se genera.
Como es esto, el proxie invoca un objeto, el proxie en este
caso es un objeto ligero pero que ya tiene las características del mismo,
mientras el proxie crea el verdadero objeto, el proxie actúa como el objeto que
se está creando, mostrando propiedades de manera preliminar.
Imaginen una clase de dibujo compleja con la que ya se puede
interactuar, pero que varios de sus componentes se muestran con barras de
carga, el proxy la clase compleja, que está construyendo los objetos que están en
él.
Y como se crea, se construyen los métodos para tener las
firmas, pero los datos se cargan conforme se está usando el objeto, estos datos
se cargan en un segundo objeto, el objeto real.
Proxies de Autenticación: Muy comunes, su labor es
establecer los permisos de acceso a un objeto.
El proxie tiene las mismas firmas que el objeto que se desea
controlar, sin embargo analiza el acceso al mismo objeto, y si este no cumple
con cierta característica no permite el acceso al mismo.
Proxie remoto: permite enviar información a través de la red
comportándose como un objeto local, cuando se implementa el proxy efectúa las
tareas de comunicación.
Proxie Inteligente: Puede efectuar cambios en el mensaje con
condiciones específicas, por ejemplo una codificación, agregar atributos etc.
Como pueden ver es un objeto muy sencillo porque su función es
solo servir de intermediario de mensajes pero que es muy útil en aplicaciones
en el mundo real.
Hasta la próxima
No hay comentarios.:
Publicar un comentario