Clase 07b patrones_diseno_ejemplo

  • 258 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
258
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
40
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Patrones de DiseñoUn Ejemplo Ilustrado (Arquitectura de Software para Practicantes) Universidad de los Andes Demián Gutierrez Marzo 2013 1
  • 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. 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. Ejemplo: Patrones de Diseño en Acción(Singleton / Factory) ¡sólo puede haber uno! 4
  • 5. Ejemplo: Patrones de Diseño en Acción(Command) El modelo sólo se modifica por medio de un comando 5
  • 6. Ejemplo: Patrones de Diseño en Acción(Decorator) O bien, cómo ponerle un marco a una ventana 6
  • 7. Ejemplo: Patrones de Diseño en Acción(Flyweight / Factory) Compartiendo Objetos Inmutables ¿Excel? 7
  • 8. Ejemplo: Patrones de Diseño en Acción(Factory) Escondido ¿Cómo construir caras... sin borde? 8
  • 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. Patrones de Diseño en Acción ¿Versión 2? 10
  • 11. Patrones de Diseño en AcciónVersión 2: Caras felices con gráficos vectoriales “Carita-Feliz-Landia” se vuelve “Vectorial” 11
  • 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. Ejemplo: Patrones de Diseño en Acción(Factory) El Cliente no nota el cambio Escondido ¿Cómo queda el Factory ahora? 13
  • 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. 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. Ejemplo: Patrones de Diseño en Acción(Composite) Un caso real 16
  • 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. 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. Gracias ¡Gracias! 19