Que es un patron de diseño?

Un patron de diseno es una solucion para un problema comun o frecuente en los procesos del diseno y desarrollo de software. Un patron es un diseno reusable de los objetos y sus interacciones.

El libro Patrones de diseno de GOF (Gang of four) se considera generalmente la base de la clasificacion de estos patrones.

Por que existen los patrones de diseño, por que son utiles?

Validez de la solucion

Como ya mencionamos, los patrones de diseno se crean pcomo soluciones para problemas que se presentan en el diseno del software. Por lo general, son soluciones que han sido probadas extensivamente e implementadas muchas veces con anterioridad, por tanto la validez de la solucion es confiable y va dirigido a evitar que tengamos que estar re inventando la solucion.

Ahorro de tiempo

Los patrones de diseno estan bien documentados e incluso podras encontrar en una busqueda simple codigo fuente de como implementarlos en los diferentes lenguajes de programacion, no tiene que memorizar el codigo o implementarlo de la nada, puedes hacer una busqueda y obtener el template con mas detalle, lo unico que necesitas saber es en cuales casos pueden ayudarte a resolver un problema.

Estos patrones estan bien probados y te ahorraran tiempo que de otra manera tendrias que invertir probando la logica de tu solucion en diferentes situaciones.

Estandarizacion del codigo

Utilizando patrones de diseno que son de conocimiento comun logramos que nuestro codigo sea mas facil de entender por el resto del equipo, y de esa manera se reduce la posibilidad de introducir errores con logica desconocida.

Clasificacion de los patrones de diseño

Patrones Creacionales

Patrones Creacionales  
Abstract Factory Este Patron puede crear una instancia de diferentes familias de clases.
Factory Method Puede crear instancias de diferentes tipos de clases que derivan de una misma
Builder  
Prototype  
Singleton  
   

Patrones Estructurales

Patrones Estructurales  
Adapter Este Patron puede crear una instancia de diferentes familias de clases.
Bridge Puede crear instancias de diferentes tipos de clases que derivan de una misma
Composite  
Decorator  
Facade  
Flyweight  
Proxy  

Patrones de Comportamiento

Patrones de Comportamiento  
Chain of Responsability Este Patron puede crear una instancia de diferentes familias de clases.
Command Puede crear instancias de diferentes tipos de clases que derivan de una misma
Interpreter  
Iterator  
Mediator  
Memento  
Observer  
State  
Strategy  
Template Method  
Visitor