Download - Patrones de Diseño
![Page 2: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/2.jpg)
Patrones de Diseño
![Page 3: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/5.jpg)
Patrones Creational
Factory Method Singleton Builder
Structural Composite Facade Proxy
Behavioral State Strategy Template Method
![Page 6: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/6.jpg)
Creationals
![Page 7: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/8.jpg)
Factory Methoddemo
![Page 9: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/10.jpg)
Singletondemo
![Page 11: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/12.jpg)
Builderdemo
![Page 13: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/13.jpg)
Structural
![Page 14: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/15.jpg)
Compositedemo
![Page 16: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/17.jpg)
Facadedemo
![Page 18: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/18.jpg)
Proxy Proporcionar un sustituto de un objeto en otro para controlar el
acceso al primero.
![Page 19: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/19.jpg)
Proxydemo
![Page 20: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/20.jpg)
Behavioral
![Page 21: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/21.jpg)
State Permite que un objeto modifique su comportamiento cuando
cambia su estado interno.
![Page 22: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/22.jpg)
Statedemo
![Page 23: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/24.jpg)
Strategydemo
![Page 25: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/26.jpg)
Template Methoddemo
![Page 27: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/27.jpg)
Preguntas?
![Page 28: Patrones de Diseño](https://reader035.vdocuments.co/reader035/viewer/2022081604/5899e7481a28ab96418b5801/html5/thumbnails/28.jpg)
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