patrones de diseño

29
Lagash Systems Mariano Sánchez Software Architect [email protected]

Upload: mariano-sanchez

Post on 07-Feb-2017

21 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Patrones de Diseño

Lagash Systems

Mariano Sánchez – Software [email protected]

Page 2: Patrones de Diseño

Patrones de Diseño

Page 3: Patrones de Diseño

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)

Page 4: Patrones de Diseño

Y para que sirven? No reinventar la rueda…

Lenguaje común entre desarrolladores.

No son una «Silver Bullet».

Flexibilidad de implementación.

Page 5: Patrones de Diseño

Patrones Creational

Factory Method Singleton Builder

Structural Composite Facade Proxy

Behavioral State Strategy Template Method

Page 6: Patrones de Diseño

Creationals

Page 7: Patrones de Diseño

Factory Method Define una interfaz para crear un objeto, pero deja la desición de

qué clase instanciar a las subclases que la implementen.

Page 8: Patrones de Diseño

Factory Methoddemo

Page 9: Patrones de Diseño

Singleton Garantiza que una clase tiene sólo una instancia y proporciona un

punto de acceso global a ella.

Page 10: Patrones de Diseño

Singletondemo

Page 11: Patrones de Diseño

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.

Page 12: Patrones de Diseño

Builderdemo

Page 13: Patrones de Diseño

Structural

Page 14: Patrones de Diseño

Composite Compone objetos en estructuras de árbol para representar jerarquías

parte-todo. Composite permite tratar objetos individuales y las composiciones de manera uniforme.

Page 15: Patrones de Diseño

Compositedemo

Page 16: Patrones de Diseño

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.

Page 17: Patrones de Diseño

Facadedemo

Page 18: Patrones de Diseño

Proxy Proporcionar un sustituto de un objeto en otro para controlar el

acceso al primero.

Page 19: Patrones de Diseño

Proxydemo

Page 20: Patrones de Diseño

Behavioral

Page 21: Patrones de Diseño

State Permite que un objeto modifique su comportamiento cuando

cambia su estado interno.

Page 22: Patrones de Diseño

Statedemo

Page 23: Patrones de Diseño

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.

Page 24: Patrones de Diseño

Strategydemo

Page 25: Patrones de Diseño

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.

Page 26: Patrones de Diseño

Template Methoddemo

Page 27: Patrones de Diseño

Preguntas?

Page 28: Patrones de Diseño

Recursos Design Patterns: Elements of Reusable Object-Oriented 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

Page 29: Patrones de Diseño

Muchas Gracias

Mariano Sánchez – Senior [email protected]