Los patrones de diseño son soluciones habituales y probadas, a problemas comunes de diseño de software.
Los 23 patrones de Gang of Four (GoF) generalmente se consideran la base para todos los demás patrones. Se clasifican en tres grupos: creacionales, estructurales y de comportamiento.
Te enseñan a resolver todo tipo de problemas utilizando principios del diseño orientado a objetos.
Los patrones de diseño definen un lenguaje común que puedes utilizar con tus compañeros de equipo para comunicaros de forma más eficiente.
Maluso o un uso desmesurado, es un problema muy comun sobre todo cuando empiezas a aprender sobre patrones de diseño porque intentas aplicarlos en todas partes, incluso en situaciones en las que un codigo mas simple funciona bien. "El tipico ejemplo de que cuando tienes un martillo, todo son clavos"
Desfasados o desactualizados, es decir hay patrones que han pasado a formar parte de las caracteristicas de los lenguajes por ejemplo hoy en dia el patrón Strategy puede implementarse con una simple función anónima (lambda) en la mayoría de lenguajes de programación modernos.
Soluciones ineficientes o cerradas sin margen de mejora, Los patrones intentan sistematizar soluciones cuyo uso ya es generalizado. Esta unificación es vista por muchos como un dogma, e implementan los patrones “al pie de la letra”, sin adaptarlos al contexto del proyecto particular.
Proporcionan varios mecanismos de creacion de objetos que incrementan la flexibilidad y la reutilización del código existente.
Explican como ensamblar objetos y clases en estructuras mas grandes, a la vez que se mantiene la flexibilidad y eficiencia de estas estructuras.
Tratan con algoritmos y la asignacion de responsabilidades dentre objetos.