Los patrones de diseño nacen como respuesta a una serie de problemas que suelen suceder repedidas veces, como la solución a dichos problemas es siempre la misma da lugar a la creación de un patrón que los resuelve.
Los patones de diseño están muy relacionados con conceptos como la poo y el polimorfismo. Los patrones de diseño no son exclusividad de un lenguaje en concreto, un mismo patrón se puede representar en diferentes lenguajes de programación ya que en definitiva, no son más que un algoritmo fijo que resuelve un conjunto de problemas similares.
Existen diversos tipos de patrones de diseño que muy brevemente los vamos a comentar.
Patrones Creacionales:
Abstraen la forma en que se crean las instacias de la clases ecapsulando el funcionamiento de las mismas.
Patrones Estructurales:
Hacen referencia a como las clases y los objetos interaccionan entre sí, buscando que las estructuras sean flexibles a los requisitos de la aplicación y nuevos cambios.
Patrones de Comportamiento
Permiten definir la comunicación e iteración entre los objetos de un sistema. El propósito de este patrón es reducir el acoplamiento entre los objetos.
