Patrones de diseño: introducción

lego piezasLos patrones de diseño son muy interesantes para los programadores, ya que nos ofrecen soluciones a problemas comunes y cuotidianos a la hora de diseñar una aplicación. Existen infinidad de casos en que el problema sigue el mismo patrón, solo cambia el contexto; un patrón de diseño te propone una solución a este tipo de problemas.

La manera de utilizarlos depende de dos factores: comprender correctamente cuando se pueden usar y tenerlos presentes a la hora de diseñar. Lo primero se consigue habiéndolos estudiado y puesto en práctica en diferentes contextos. Lo segundo, que también incluye su dificultad, es la capacidad de encontrarse con un problema, y ser capaz de relacionarlo con un patrón de diseño que conozcas.

Las características de un patrón son tres:

  • Contexto: situación en la que se presenta el problema de diseño.
  • Problema: descripción del problema a resolver, y enumeración de las fuerzas a equilibrar (requisitos no funcionales como eficiencia, portabilidad, cambiabilidad, …).
  • Solución: conjunto de medidas que se han de tomar, como crear alguna clase, atributo o método, nuevos comportamientos entre clases, …

Existe un amplio catálogo de patrones de diseño, pero los verdaderamente importantes son unos 20. Se pueden clasificar por su nivel de abstracción, aunque principalmente son clasificados según el criterio de Gang of Four (un libro sobre patrones de diseño):

  • Patrones creacionales: Abstract Factory, Factory Method, Singleton, …
  • Patrones estructurales: Adapter, Facade, Bridge, …
  • Patrones de comportamiento: Observer, State, Iterator, …

Quiero hacer una aclaración: hay que diferenciar los patrones de diseño a los patrones arquitectónicos. Estos últimos son patrones como patrón de tres capas (MVC) o el patrón orientado a objetos. Sabiendo la especificación del software, los requisitos no funcionales y la tecnología que se va a usar, se pueden aplicar los patrones arquitectónicos que nos interesen. Y a medida que se vaya diseñando la aplicación, surgirán los problemas en los que podremos aplicar los patrones de diseño.

Haciendo este artículo he descubierto los “Antipatrones de diseño“, que son unos patrones de diseño que siempre dan una mala solución al problema.

Espero poder adentrarme más en este campo, y poder explicar algunos patrones interesantes. Un libro muy recomendable para aprender patrones es: “Head First Design Patterns“. Los muestra con esquemas, ejemplos claros, analogías, gráficos, etc. A ver si estas Navidades cae ;)

Head First Design Patterns Book

Head First Design Patters – Google Books

6 comentarios en “Patrones de diseño: introducción

  1. I like this web blog so much, saved to fav. “I don’t care what is written about me so long as it isn’t true.” by Dorothy Parker.

Deja un comentario

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>