1 of 21

Diseño de Sistemas

2 of 21

Agenda

de la clase

  • Patrones de diseño
  • El problema creacional + ejemplos
  • Dudas comunes
  • Qué Me Pongo: Iteración 2
  • Actividades para la próxima clase

2

3 of 21

1.

Patrones de diseño

Qué son

3

4 of 21

Patrones de

Diseño

Solución conocida

  • Problema común
  • Nombre conciso
  • Tiende a ser ideal

Es un medio

  • No es un fin en sí mismo
  • Ni mejor ni peor
  • Cualidades

Conceptos subyacentes

  • Explorar ideas
  • No es “La solución”
  • Adaptables y recombinables

4

5 of 21

2.

Patrones creacionales

Time to be born

5

6 of 21

Patrones

Creacionales

Instanciar vs. Construir

6

7 of 21

Factory

Method

  • Sabe instanciar un objeto
  • Hace un new y retorna lo creado
  • Encapsula complejidad de construcción
  • Usualmente es un “hook method”

7

8 of 21

Patrón

Builder

  • Encapsula complejidad de construcción
  • Mantiene estado interno
  • Permite diferir construcción en el tiempo
  • Provee valores default
  • Es fácil de configurar (usar)
  • Garantiza objetos consistentes
  • Es un Contrato débil

8

9 of 21

3.

Consultas

A repasar lo que no quedó claro

9

10 of 21

Me costó entender el apunte. Se me hizo difícil seguirlo dado que los ejemplos de código están en Smalltalk

10

11 of 21

Esto es algo que nunca terminé de entender: "programar para las interfaces no para las implementaciones"

11

12 of 21

¿Qué es un XML?

12

13 of 21

No entendí bien qué es la inyección de dependencias. Tampoco entendí el principio de "no nos llame, nosotros lo llamamos'

13

14 of 21

¿Por qué el apunte dice que Singleton es el patrón más odiado y sólo debe utilizase cuando no exista otro recurso? ¿Qué desventajas tiene?

14

15 of 21

Se plantea que el proceso de creación de una pizza debe tener un paso "Agregar salsa", pero no todas las pizzas llevan salsa. ��¿Se puede evitar tener que implementar un método vacío?

15

16 of 21

Si quisiera usar el patrón Builder, ¿eso implica que como mínimo debería tener una jerarquía de Builders para poder tener crear diferentes representaciones?

16

17 of 21

17

Más

preguntas?

18 of 21

4.

QMP II: puesta en común

Cómo encarar el diseño de la solución a un problema

18

19 of 21

19

Preguntas?

Algo no te convenció?

20 of 21

Para la clase que viene

Les estaremos enviando un email con:

  • Apuntes para que lean
  • Un ejercicio para que vayan pensando
  • Un form para que entreguen un primer planteo de la solución

Recuerden enviar consultas al foro

20

21 of 21

Muchas Gracias!!

Si tienen consultas

https://github.com/dds-jv/foro

21