Los patrones de diseño o design patterns, son una solución general, reutilizable y aplicable a diferentes problemas de diseño de software. El patrón no es una porción específica de código, sino un concepto general para resolver un problema particular. La mayoría de los patrones se describe con mucha formalidad para que la gente pueda reproducirlos en muchos contextos.

Lo que puedes encontrar en la descripción de un patrón es: El propósito y la motivación del patrón explica el problema y la solución que brinda el patrón.

Los patrones pueden clasificarse por su propósito.

Patrones Creacionales

Patrones Estructurales

Patrones de Comportamiento

Antipatrones. Es una forma de describir una solución común a un problema de diseño, que al implementarla  genera consecuencias decididamente negativas.

Puede ser el resultado de que un arquitecto o ingeniero de desarrollo haya aplicado un patrón sin tener suficiente conocimiento o experiencia para resolver un tipo particular de problema, o que ha aplicado un patrón en un contexto incorrecto.


La Abstracción (también llamada interfaz) es una capa de control de alto nivel para una entidad. Esta capa no tiene que hacer ningún trabajo real por su cuenta, sino que debe delegar el trabajo a la capa de implementación (también llamada plata- forma).