Patrones de diseño

Definición

Solución reutilizable a problemas de diseño similares que se presentan en cualquier desarrollo de software

Los patrones de diseño son el esfuerzo que hizo gente de cómputo para discutir los problemas comunes a un desarrollo de sistemas.

En el libro "Design patterns: Elements of Reusable Object Oriented Software", Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides ( Gang-Of-Four o GoF); conjuntaron todos los patrones de diseño posibles

Los patrones de diseño se clasifican en tres:
* Creacion. La manera de crear objetos
* Estructura. La manera de organizar objetos para que se relacionen entre sí
* Comportamiento. La manera de organizar objetos en su dinámica o evolución

todos están orientados a que se obtenga un sistema con acoplamiento bajo y cohesion alta, y por ende, flexible, reutilizable y parametrizable.

Patrones Fundamentales

Delegación
Interfase
Inmutable
Interfase Marcada

Patrones de Creación

Método Fábrica (Factory Method)
Fábrica Abstract (Abstract Factory )
Constructor (Builder )
Singleton
Prototipo

Patrones de Estructura

Adaptador(Adapter)
Decorador(Decorator)
Fachada(Facade)
Apoderado(Proxy)
Compuesto(Composite)
Puente(Bridge)
FlyWeight

Patrones de comportamiento

Estrategia(Estrategy)
Método Plantilla (Template Method)
Observador (Observer)
Comando(Command)
Estado(State)
Interprete(Interpreter)
Cadena de responsabilidades (chain of responsibility)
Iterador (Iterator)
Mediador (Mediator)
Memento
Visitante (Visitor)