Ir al contenido principal

Destacado

C4 Model | Por una mejor comunicación

Introducción. Han pasado muchos años desde la introducción de UML en el ámbito del desarrollo de software, con la llegada de Agile , la forma de desarrollar software cambió drásticamente: algunos conceptos evolucionaron, aparecieron nuevos mientras que otros fueron abandonados. Hoy en día, UML es utilizado por contadas personas,  la propia industria ha dejado de lado aquellos elaborados diagramas,  recurriendo a diagramas genéricos o diagramas parciales, altamente variados entre sí, para representar y describir arquitecturas/diseños. Aquí es donde entra Simon Brown , quien identificó este problema de comunicación dentro de las organizaciones. Para solucionarlo, desarrolló el modelo C4 , un sistema de modelos, capaz de describir el software de manera clara y accesible, no solo para  los equipos de desarrollo y arquitectos sino para todo aquel interesado en comprender el funcionamiento y  estructura de un sistema . Modelo C4. El modelo C4 se basa en un c...

Javascript | Proxy

Proxy

Esta entrada continua con el tema de patrones de diseño y en esta ocasión vamos a examinar el patrón Proxy y algunas de sus ventajas.


Descripción.

El proxy es un patrón de diseño, de tipo estructural y consiste en definir un objeto/componente (sustituto) por medio del cuál controlamos el acceso a otro (original).

Esto nos permite agregar funcionalidad adicional así como simplificar la interacción con el objeto original.


Ejemplo.


RealSubject: es el objeto que nuestro Proxy va a "sustituir. Tiene 2 métodos: connect y disconnect

Proxy: es el objeto que controla el acceso a RealSubject. Internamente crea una referencia de RealSubject y hace las llamadas a los métodos correspondientes.

La clase mantiene la misma interfaz (connect y disconnect) pero añade funcionalidades extras (fireBeforeConnectEvent y fireAfterConnectEvent) así como un control de errores (try/catch).

Con este patron podemos agregar funcionalidades que necesitemos en nuestro proyecto sin tener que modificar el objeto original.

Además de que nos permite desacoplar nuestro código de la interfaz del objeto original y cuando esta cambie, sólo tendríamos que actualizar el Proxy, para agregar las nuevas llamadas; Para el resto de componentes que consuman el Proxy, estos cambios serían transparentes por lo que reduciríamos el riesgo de romper alguna parte del sistema.

Notas

Ahora bien, este es un ejemplo bastante simplificado, en proyectos reales, el patrón proxy puede ser aplicado en diferentes formas dependiendo de los casos que se requieran resolver.

También trata de escoger un nombre que represente claramente la función del Proxy. Retomando el ejemplo nuestro proxy bien pudo aplicarse a un ConnectionManager, que internamente consuma alguna librería para conectarse a una Base de Datos.

Y como decía Porky, eso todo amigos!,  espero haber sido claro y empiecen a pensar en términos de patrones!



Happy hacking!

Comentarios

Entradas populares