Introducción a los patrones de diseño

Introducción

Según Wikipedia:

[Un] patrón de diseño de software es una solución general reutilizable para un problema común dentro de un contexto dado en el diseño de software. No es un diseño terminado que pueda transformarse directamente en código fuente o máquina. Es una descripción o plantilla sobre cómo resolver un problema que se puede usar en muchas situaciones diferentes. Los patrones de diseño son mejores prácticas formalizadas que el programador puede usar para resolver problemas comunes al diseñar una aplicación o sistema.

(Recuperado: 13-10-2016)

Hay muchos patrones de diseño de software reconocidos y se proponen nuevos con regularidad. Otros temas cubren muchos de los patrones más comunes y el artículo de Wikipedia proporciona una lista más extensa.

Del mismo modo, existen diferentes formas de clasificar los patrones de diseño, pero la clasificación original es:

La idea de patrones de diseño se ha ampliado a patrones de diseño específicos de dominio para dominios como el diseño de interfaz de usuario, visualización de datos, diseño seguro, diseño web y diseño de modelo de negocio.

Finalmente, hay un concepto relacionado llamado patrón de arquitectura de software que se describe como el análogo de los patrones de diseño aplicados a las arquitecturas de software.