| Selector de colores | |
| Paso 3: Introducción a los patrones de diseño |
Los patrones de diseño de software Orientados a Objetos tienen su origen en el campo de la Arquitectura gracias a los trabajos de investigación y publicaciones del arquitecto Christopher Alexander a finales de los años 70.
A través de los siglos se han seguido diferentes técnicas para soportar las bóvedas en la parte más alta de las Catedrales:
Christopher Alexander detectó que para un mismo problema, en este caso encumbrar una bóveda en una Catedral, se le han dado diferentes soluciones dependiendo del patrón arquitectónico utilizado
Christopher Alexander intentó resolver problemas arquitectónicos utilizando los patrones. Para ello trató de extraer la parte común de los buenos diseños, con el objetivo de reutilizarlos en otros diseños. Y realizó la siguiente definición:
El hecho de que en diferentes zonas del mundo se construya de forma diferente nos demuestra que la esencia del diseño en cada una de estas zonas se ha copiado de una construcción a otra. Podemos decir que existen una serie de patrones que se han aplicado a diferentes zonas para dar una solución efectiva a los problemas de construcción de dichas zonas.
Evolución de los patrones de diseño
Los patrones de diseño son pues una disciplina de problema-solución que está en constate evolución entre los diseñadores y desarrolladores que trabajamos con lenguajes Orientados a Objetos.
En 1987, Ward Cunningham y Kent Beck diseñaron interfaces de usuario con el lenguaje de programacioón Smaltalk y se basaron en los trabajos de Christopher Alexander. Entonces publicaron un libro titulado Using Pattern Languages for Object-Oriented Programs.
Pero no fue hasta el año 1994 cuando Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides, más conocidos como the Gang of Four (la Banda de los Cuatro, GoF), publicaron el bestseller Diseño de patrones: Elementos de reutilización de Software Orientado a Objetos que los patrones de diseño se convierten en imprescindibles para todos los diseñadores y desrrolladores de software Orientado a Objetos.
En el año 1997 Craig Larman editó la primera edición del libro UML y Patrones. Una introducción al análisis y diseño orientado a objetos que se convirtió en una lectura inexcusable para toda persona que se quisiera introducir en el mundo del A/DOO (Análisis y diseño orientado a objetos). En el año 2001 Craig Larman se superó a si mismo con la segunda edición del libro esta vez titulado UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado. En el año 2005 Craig Larman se volvió a superar a si mismo con la tercera edición del libro esta vez titulado Applying UML and Patterns. An introduction to Object-Oriented Analysis and Design and Iterative Development.
También en el año 2001 Deepak Alur, John Crupi y Dan Malks publicaron el libro Core J2EE Patterns. Best Practices and Design Strategies que se ha convertido en un estándar de referencia para cualquier Arquitecto de aplicaciones Java Enterprise Edition.
Definiciones de patrones de diseño
Las metodologías orientadas a objetos tienen como su máxima el hecho de no reinventar la rueda en cada nuevo proyecto. Por tanto los patrones se convierten en esenciales para la reutilización del software.
El objetivo principal que persiguen los patrones es crear un lenguaje común entre los Diseñadores y Desarrolladores para comunicar experiencias sobre los problemas y sus soluciones.
Estas son diferentes definiciones dadas por diferentes autores en los últimos años
Descubrimiento de los patrones de diseño por parte de los expertos
Patrones de diseño GRASP y GoF
Para saber más sobre los patrones grasp podemos seguir los siguientes vínvulos