Design Patterns (1994)

En 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” o “PHP Objects, Patterns and Practice“, que pueden ser más asequibles para principiantes cuya lectura además es muy conveniente para ver cómo se aplican estos patrones en cada lenguaje de programación concreto.

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
  • ISBN (EN): 0201633612
  • ISBN (ES): 9788478290598

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