Patrones de diseño

Strategy Pattern


Define una familia de algoritmos, encapsulando cada uno de ellos, permitiendo ser intercambiados entre si. Permite que el algoritmo varie independientemiente de quien lo utiliza




Observer Pattern


Define una dependencia uno-a-muchos entre objetos. En la cual, cuando un objeto (subject) cambia de estado, todos los que dependen de el (observers) son notificados automaticamente





Decorator Pattern


Agrega funcionalidad a un objeto dinamicamente. Es una alternativa flexible a realiza sub-clases para extender funcionalidad.
Este patron de diseño es utilizado frecuentemente en conjunto con el FactoryMethod Pattern y el Builder Pattern.




Factory Method Pattern


Define la interfaz para crear un objeto, pero deja a las sub-clases determinar que clase instanciar. Permite delegar la instanciacion a las sub-clases