Lagash Systems
Mariano Sánchez – Software [email protected]
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)
Y para que sirven? No reinventar la rueda…
Lenguaje común entre desarrolladores.
No son una «Silver Bullet».
Flexibilidad de implementación.
Patrones Creational
Factory Method Singleton Builder
Structural Composite Facade Proxy
Behavioral State Strategy Template Method
Creationals
Factory Method Define una interfaz para crear un objeto, pero deja la desición de
qué clase instanciar a las subclases que la implementen.
Factory Methoddemo
Singleton Garantiza que una clase tiene sólo una instancia y proporciona un
punto de acceso global a ella.
Singletondemo
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.
Builderdemo
Structural
Composite Compone objetos en estructuras de árbol para representar jerarquías
parte-todo. Composite permite tratar objetos individuales y las composiciones de manera uniforme.
Compositedemo
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.
Facadedemo
Proxy Proporcionar un sustituto de un objeto en otro para controlar el
acceso al primero.
Proxydemo
Behavioral
State Permite que un objeto modifique su comportamiento cuando
cambia su estado interno.
Statedemo
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.
Strategydemo
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.
Template Methoddemo
Preguntas?
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
Muchas Gracias
Mariano Sánchez – Senior [email protected]