Antes de entrar en materia hablándote de la definición de patrón de diseño, debemos saber qué es un patrón:
Un patrón es un tipo de tema de sucesos u objetos recurrentes, como por ejemplo grecas, a veces referidos como ornamentos de un conjunto de objetos.
Dicho en otras palabras: es una forma recurrente de hacer las cosas, para obtener buenos resultados. Para que te de quede más claro, para fabricar una camiseta de talla M se usan formas predefinidas como las de la siguiente imagen.
¿Quedó claro?
Te lo digo en otras palabras: un patrón describe un problema que ocurre una y otra vez en nuestro entorno, así como la solución a ese problema, de tal modo que se pueda aplicar dicha solución N veces, sin repetir lo mismo dos veces. ¿Mejor?
Si no queda muy claro puedes ver Patrones de Diseño, ¿los conoces?
Elementos de un patrón de diseño
Un patrón tiene 4 elementos esenciales:
- El nombre del patrón
- El problema que describe cuándo aplicarlo
- La solución que describe los elementos que constituyen el diseño
- Las consecuencias o resultados que representan las ventajas e inconvenientes
Un patrón de diseño en programación es una descripción de clases y objetos relacionados que están particularizados para resolver un problema de diseño general en un determinado contexto.
¿Cómo surgen los patrones de diseño?
Surgen en 1987 a partir de los patrones de diseño arquitectónicos. Primero se describen 5 patrones publicados en un artículo por Ward Cunningham y Kent Beck bajo el título: Using Pattern Languages for OO Programs.
Para los 90’s el grupo Gang of Four (GoF) compuesto por Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides escribe el libro Design Patterns, donde hablan ya de 23 patrones de diseño.
Clasificación de los patrones de diseño
Actualmente se reconocen 25 patrones de diseño y se clasifican en 3 tipos:
- Creacionales. Son patrones de diseño relacionados con la creación o construcción de objetos. Estos patrones intentan controlar la forma en que los objetos son creados
implementando mecanismos que eviten la creación directa de objetos. - Estructurales. Son patrones que tiene que ver con la forma en que las clases se relacionan con otras clases. Estos patrones ayudan a dar un mayor orden a nuestras clases ayudando a crear componentes más flexibles y extensibles.
- De comportamiento. Son patrones que están relacionados con procedimientos y con la
asignación de responsabilidad a los objetos. Los patrones de comportamiento engloban también patrones de comunicación entre ellos.
No voy a hablar particularmente de ninguno en esta entrada pero si necesitas información sobre los patrones te recomiendo el blog de Oscar Blancarte: Patrones de Diseño es muy bueno y puedes ampliar comprando su libro, yo ya lo compré y te estaré contando al respecto más adelante.
¡Nos leemos en la próxima!