September 8, 2010, Wednesday, 250
publicidad

Resumen Quiz4 FISW 2008-2

De La Palta

Tabla de contenidos

[editar] Diagrama de Clases

editar

[editar] Patrones de Diseño

[editar] Presentación

  • Patrón de Diseño de Software: Solución a un problema recurrente de diseño de software.
  • Trozo de conocimiento de software.
  • Elemento de comunicación, permitiendo referirse a una solución sin entrar en detalles particulares.

Ejemplo: Busco una clase que se instancie 1 vez : Singleton.

Los patrones de diseño tienen por lo general un nombre que permite recordar la solución.

Son independientes del Dominio del Problema.

  • El problema recurrente que resuelve puede aparecer en cualquier dominio.
  • Pueden venir acompañados de ejemplos.

[editar] Ejemplo de un Problema de Diseño

  • Super clase PATO, subclases tipos de PATOS.

Hay un método abstracto común: mostrar() en la superclase que son implementados en las subclases.

Todos los patos pueden decir cuack y nadar, por lo que la implementación va en la super clase.

En cada subclase implementa el metodo mostrar() que hace que cada pato se vea distinto.

  • Supongamos ahora que deseamos implementar el metodo volar()

A primera vista, lo implementariamos en la superclase, para que todos los patos puedan volar.

¿Qué pasa si alguno de esos patos no podia volar, como un pato de goma?

  • El problema del Diseño

Solo algunos patos heredan la característica de volar.

[editar] Evaluando Soluciones para el Problema de Diseño

¿Que puedo hacer?

- Sobreescribir el metodo fly, pero seria costoso si muchos patos no volaran.

- Usar interfaces, pero si hay muchos comportamientos, exisitirian muchas interfaces.

- Podemos agrupar los comportamientos, utilizando interfaces, que cada interfaz tenga subclases (creo) de comportamientos, y asi agrupar.

FlyBehavior f = new FlyNoWay(); CuackBehavior c = new Squeak(); Duck rubber = new Duck(); rubber.setFlyBehavior(f); rubber.setCuackBehavior(c);

Esto nos permite configurar.

Ademas nos permite hacer cambios en tiempo de ejecución de algun comportamiento.

[editar] Comentarios acerca del ejemplo

[editar] Principios de Diseño

[editar] Familia de Patrones

[editar] Patrones GOF: Creacionales