Patrones de diseño de software

Los patrones de diseño son soluciones para problemas típicos y recurrentes que nos podemos encontrar a la hora de desarrollar una aplicación.

Aunque nuestra aplicación sea única, tendrá partes comunes con otras aplicaciones: acceso a datos, creación de objetos, operaciones entre sistemas etc. En lugar de reinventar la rueda, podemos solucionar problemas utilizando algún patrón, ya que son soluciones probadas y documentadas por multitud de programadores.

Patrones de diseño hay muchos. Muchísimos. Y siguen apareciendo patrones nuevos cada poco tiempo. El desarrollo de aplicaciones es una disciplina en constante cambio. Por tanto los problemas a los que nos enfrentamos los desarrolladores también cambian. Así que las herramientas utilizadas, también se van actualizando y mejorando.

Es imposible conocer todos los patrones de diseño. Lo más útil es tener un catalogo de patrones que podamos consultar. A la hora de desarrollar una aplicación, podremos consultar nuestro catálogo buscando patrones que nos ayuden a solucionar problemas de diseño concretos.

Existen diversas maneras de agrupar los patrones de diseño. Quizá la más extendida es agruparlos según su propósito. En este caso tendríamos las siguientes categorías:

  • Patrones creacionales: utilizados para instanciar objetos, y así separar la implementación del cliente de la de los objetos que se utilizan. Con ellos intentamos separar la lógica de creación de objetos y encapsularla.
  • Patrones de comportamiento: se utilizan a la hora de definir como las clases y objetos interaccionan entre ellos.
  • Patrones estructurales: utilizados para crear clases u objetos que incluidos dentro de estructuras más complejas.