Clase 07b patrones_diseno_ejemplo

901 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
901
On SlideShare
0
From Embeds
0
Number of Embeds
166
Actions
Shares
0
Downloads
72
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase 07b patrones_diseno_ejemplo

  1. 1. Patrones de DiseñoUn Ejemplo Ilustrado (Arquitectura de Software para Practicantes) Universidad de los Andes Demián Gutierrez Marzo 2013 1
  2. 2. Patrones de Diseño en AcciónVersión 1: Las caras felices son imágenes ¡Bienvenidos a “Carita-Feliz-Landia”! ...donde todas las caritas son felices... (ejem, bueno, casi todas) 2
  3. 3. Patrones de Diseño en AcciónVersión 1: Las caras felices son imágenes ¿cuál es la responsabilidad de cada clase? 3
  4. 4. Ejemplo: Patrones de Diseño en Acción(Singleton / Factory) ¡sólo puede haber uno! 4
  5. 5. Ejemplo: Patrones de Diseño en Acción(Command) El modelo sólo se modifica por medio de un comando 5
  6. 6. Ejemplo: Patrones de Diseño en Acción(Decorator) O bien, cómo ponerle un marco a una ventana 6
  7. 7. Ejemplo: Patrones de Diseño en Acción(Flyweight / Factory) Compartiendo Objetos Inmutables ¿Excel? 7
  8. 8. Ejemplo: Patrones de Diseño en Acción(Factory) Escondido ¿Cómo construir caras... sin borde? 8
  9. 9. Ejemplo: Patrones de Diseño en Acción(Builder) Ahora que sabemos cómo construir bordes y caras ¿cómo podemos combinar ambas cosas? ¿Cómo construir objetos complejos de forma fácil? 9
  10. 10. Patrones de Diseño en Acción ¿Versión 2? 10
  11. 11. Patrones de Diseño en AcciónVersión 2: Caras felices con gráficos vectoriales “Carita-Feliz-Landia” se vuelve “Vectorial” 11
  12. 12. Patrones de Diseño en AcciónVersión 2: Caras felices con gráficos vectoriales Ojo (Eye) Cara (DrawnFace) Círculo (Circle) Círculo (Circle) Sonrisa (Smile) Círculo (Circle) “Carita-Feliz-Landia” se vuelve “Vectorial” 12
  13. 13. Ejemplo: Patrones de Diseño en Acción(Factory) El Cliente no nota el cambio Escondido ¿Cómo queda el Factory ahora? 13
  14. 14. Ejemplo: Patrones de Diseño en Acción(Composite) ¿Cómo dividir la complejidad a lo largo de un grupo de objetos compuestos? 14
  15. 15. Ejemplo: Patrones de Diseño en Acción(Composite) En realidad es un poquito más complejo ¿A alguien se le ocurre un refactor? 15
  16. 16. Ejemplo: Patrones de Diseño en Acción(Composite) Un caso real 16
  17. 17. Resumen Singleton (119 / --69---) Composite (151 / --85--) Factory (99 / --59--) Command (215 / --117--) Facade (171 / --95--) Decorator (161 / --90--) Flyweight (179 / --99--) Builder (89 / --54--) Las páginas son referencias a la versión en español del libro de Patrones de Diseño de GoF 17
  18. 18. Resumen Hay que pensar menos en el “código menudo” (if, else, while, for, etcétera) Y más en términos de: Estructura: ¿Cómo organizar el código y distribuir responsabilidades a lo largo de distintas clases? Patrones de Diseño: ¿Qué patrones me pueden ayudar a estructurar el código adecuadamente? 18
  19. 19. Gracias ¡Gracias! 19

×