PatronesDiseñoTitulo

En lugar de reinventar la rueda, mejor usemos patrones de diseño.

Muchas veces nos encontramos con los mismos problemas al estar desarrollando; manejo de excepciones, conección a la base de datos, creación de alertas, etc. Pareciera que no importa que lenguaje de programación utilicemos, estos problemas siempre tendrán que ser atendidos por el programador.

 

Y es aquí, en la resolución recurrente de problemas comunes, que los patrones de diseño nos pueden ayudar bastante, ya que si los implementamos de la manera adecuada, nos van a permitir crear soluciones robustas, flexibles y adaptables a las necesidades que se nos van a ir presentando a medida que avanzamos en el desarrollo de nuestros sistemas.

 

La idea de los patrones de diseño fue ampliamente dada a conocer por el trabajo de “Gang of Four”, quienes a través de su libro Design Patterns: Elements of Reusable Object-Oriented Software, describen 23 soluciones para problemas comunes en el diseño de software.

 

 

Estos 23 patrónes de diseño los clasificaron en 3 categorias:

 

De creación

 

Son aquellos que definen (en tiempo de ejecución) quien va a crear o utilizar los objetos de la solución. Por ejemplo; si tenemos dos repositorios, uno en la base de datos y otro que consultamos de algún servicio web, podríamos usar un Abstract Factory para determinar que repositorio utilizar.

 

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

 

De estructura

 

Brindan flexibilidad a la solución para extender y publicar funcionalidad a otros componentes. Por ejemplo; cuando publicamos servicios y esperamos que los consuman vía HTTP, estamos utilizando un Proxy que debe controlar el canal de comunicación.

 

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

 

De comportamiento

 

Resuelven muchas funcionalidades cotidianas que normalmente queremos desarrollar. Desde un Iterator que puede servir para definir reglas para recorrer una secuencia de datos, por ejemplo, las reglas para recorrer los canales de televisión en un control remoto.  Hasta un Observer, que sirve para notificar que cambio algo a todos los que están suscritos.

 

  • Chain of responsability
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

 

Si bien, estos 23 patrónes de diseño son los mas conocidos, existen otros más que se han venido desarrollando y/o evolucionando. Pero si logramos tener como referencia, estos 23 patrónes, para nuestros desarrollos, tendremos la certeza de que estaremos implementando un código bastante robusto, que está respaldado por la experiencia de muchos años de desarrollo de gente muy brillante.

Comments

comments

1 Comment

  1. Roberto Saldana junio 29, 2016 at 4:19 pm

    Muy buen articulo Jimmy, realmente creo que puedes hacer una parte 2, 3, 4, etc. Extendiendo un poco la descripción e implementación ó posibles escenarios donde se pueden implementar al menos los patrones de diseño más usados, también hay otros patrones de diseño que ya podemos agregar a la lista como lo son MVC, MVVM, etc. y también puede ser muy interesante escribir un poco sobre los anti-pattterns. Saludos.

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *