2. Que son los Patrones de Diseño?
• Los patrones de diseño son soluciones a los problemas
recurrentes de diseño de software que encontramos
una y otra vez en el desarrollo de aplicaciones.
• Se clasifican en tres grupos:
– De creación (Creational),
– De estructura (Structural)
– De comportamiento. (Behavioral)
3. Y para que sirven?
• No reinventar la rueda…
• Lenguaje común entre desarrolladores.
• No son una «Silver Bullet».
• Flexibilidad de implementación.
5. Factory Method
• Define una interfaz para crear un objeto, pero deja la
desición de qué clase instanciar a las subclases que la
implementen.
6. Singleton
• Garantiza que una clase tiene sólo una instancia y
proporciona un punto de acceso global a ella.
7. Builder
• Separa la construcción de un objeto complejo de su
representación para que con el mismo proceso de
construcción se pueden crear diferentes representaciones.
8. Composite
• Compone objetos en estructuras de árbol para representar
jerarquías parte-todo. Composite permite tratar objetos
individuales y las composiciones de manera uniforme.
9. Facade
• Proporciona una interfaz unificada para un conjunto de
interfaces en un subsistema. Facade (fachada) define una
interfaz de alto nivel que hace que el subsistema sea más
fácil de usar.
11. State
• Permite que un objeto modifique su comportamiento
cuando cambia su estado interno.
12. Strategy
• Define una familia de algoritmos, encapsula cada
uno, y los hace intercambiables. Strategy permite al
algoritmo variar independientemente de los clientes
que lo utilizan.
13. Template Method
• Define el esqueleto de un algoritmo en una operación,
difiriendo algunos pasos a subclases. Template Method
permite a las subclases redefinir ciertos pasos de un
algoritmo sin cambiar su estructura.
15. Recursos
• Design Patterns: Elements of Reusable ObjectOriented Software
– E. Gamma, R. Helms, R. Johnson, J. Vlissides;
Addison Wesley, 1994, ISBN 0201633612
• Refactoring To Patterns
– Joshua Kerievsky; Addison Wesley, 2004, ISBN
0321213351
• http://www.dofactory.com/Patterns/Patterns.aspx