patrones de diseño
DESCRIPTION
Presentación sobre Patrones de Diseño del libro de Design Patterns de GOF (Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides)TRANSCRIPT
Patrones de Diseño
Lagash Systems
Mariano Sánchez
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
Factory Method• Define una interfaz para crear un objeto, pero deja la
desición de qué clase instanciar a las subclases que la implementen.
Singleton• Garantiza que una clase tiene sólo una instancia y
proporciona un punto de acceso global a ella.
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.
Composite• Compone objetos en estructuras de árbol para representar
jerarquías parte-todo. Composite permite tratar objetos individuales y las composiciones de manera uniforme.
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.
Proxy• Proporcionar un sustituto de un objeto en otro para
controlar el acceso al primero.
State
• Permite que un objeto modifique su comportamiento cuando cambia su estado interno.
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.
Template Method
• Define el esqueleto de un algoritmo en una operación, difiriendo algunos pasos a subclases. Template Methodpermite a las subclases redefinir ciertos pasos de un algoritmo sin cambiar su estructura.
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