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