Design Patterns (1994)

20140919-design-patternsEn todos los cursos de Java, UML y bastantes de programación terminamos hablando de los patrones de diseño. Cada vez que llegamos a la programación de aplicaciones con interfaz gráfica hay que mencionar el patrón M-V-C, fundamental en estos casos. Esta y otras soluciones salieron hacen 20 años de una obra excelente: Design Patters.

En la asignatura de programación de la universidad se mencionan algunos algoritmos “clásicos” como la base de la programación procedimental, pero no existe un cuerpo semejante de indicaciones respecto a la programación Orientada a Objetos. A principios de los 90, cuatro autores recopilaron su experiencia en este tipo de software y la sistematizaron en lo que llamaron “patrones”: la descripción de un problema y una estrategia de resolución. Lo sorprendente de este trabajo no es sólo su originalidad, sino la vigencia que sigue teniendo tantos años después. Incluso los detractores de este libro reconocen que es la recopilación más completa del tema.

Los patrones son el resultado de la experiencia acumulada por sus autores, que reflejaron en este libro una serie de estrategias para resolver situaciones comunes, como la mencionada de programar aplicaciones con interfaz gráfica. En este caso, por ejemplo, lo más eficaz es separar el código en tres bloques independientes: un modelo, que manipula los datos, una vista, que interacciona con el usuario, y un control, que responde a eventos y relaciona los otros dos.

Esta recomendación, separar el código en tres bloques, no tiene nada que ver con la implementación concreta que se pueda hacer en uno u otro lenguaje, por lo que la solución es válida en Java, en C++, en Visual Basic o en cualquier otro lenguaje orientado a objetos.

La validez de los patrones reside en la universalidad de su planteamiento, lo que puede explicar en gran parte el éxito del libro. Las soluciones que describe no son válidas para éste lenguaje en tal sistema operativo, sino para cualquier lenguaje en cualquier entorno, siempre que mantengan la orientación a objetos.

Es cierto que no se trata de un “tutorial” ni de un curso de patrones, sino de un texto técnico para programadores de nivel medio. Para eso hay otros libros, como “Head First Design Patterns”, que pueden ser más asequibles para principiantes. Pero al final, éste es el que hay que utilizar para comprender por completo cada uno de los patrones descritos.

También es conveniente complementar la lectura de este libro con otro más moderno en el que se vea cómo diagramar la aplicación de los patrones con UML. De esta forma, si el programador está acostumbrado usar UML a diario, podrá incluir las estrategias de patrones en sus aplicaciones.

En todo caso, se trata de una obra imprescindible para todos los que se dedican a la programación orientada a objetos, que puede sacarnos de un apuro en más de una ocasión y ahorrarnos días o semanas de dar vueltas a un problema práctico. Por cierto, está disponible en castellano.


Ficha Bibliográfica

  • Título: Design Patters, Elements of Reusable Object-Oriented Software
  • Autor: Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides
  • Año: 1994
  • Editorial: Addison Wesley
  • ISBN (ES): 9788478290598
  • ISBN (EN): 0201633612

Design Patterns

Design Patterns
6.5

Utilidad

9.0 /10

Claridad

6.0 /10

Vigencia

7.0 /10

Precio

4.0 /10

Pros

  • Expone conceptos cruciales en programación orientada a objetos
  • Las ideas se pueden aplicar a cualquier lenguaje de programación

Cons

  • Tiene más de dos décadas y no contempla algunos escenarios más modernos
  • El texto es un poco árido en algunos puntos