Simulación del patrón … (3)
Departamento de Sistemas Informáticos y Programación
Universidad Complutense de Madrid
Editor gráfico: 3ª Iteración
 Información sobre las dimensiones actuales de una figura
 Línea de edición
 Sólo se presenta la información de la última figura creada o
seleccionada
 Actualización de la información
 Cuando seleccionamos una figura
 Cuando estamos creando una figura
Simulación del patrón … (3)
Clases iniciales
Simulación del patrón … (3)
Escenario 1: Creación de una figura
 ¿Cómo actualizaremos el área de texto?
 MouseDragged
 Cada vez que lo ejecutamos, actualizaremos la información del cuadro
de texto
Simulación del patrón … (3)
Escenario 2: Selección de una figura
 ¿Cómo actualizaremos el área de texto?
 MousePressed
 Si se ha pulsado sobre una figura
 Seleccionarla
 Actualizar el área de texto
Simulación del patrón … (3)
Cambio de planes…
 Preferimos guardar todos los cambios que se vayan produciendo
 Área de texto
 Una línea de información por cada cambio que se produzca
 Actualización de la información
 Cuando seleccionamos una figura
 Cuando estamos creando una figura
Simulación del patrón … (3)
REPETIMOS: Escenario 1 y 2
 ¿Cómo actualizaremos el área de texto?
 Creación de una figura
 MouseDragged
 Cada vez que lo ejecutamos, actualizaremos la información del
cuadro de texto
 MousePressed
 Si se ha pulsado sobre una figura
Simulación del patrón … (3)

Seleccionarla

Actualizar el área de texto
Conclusiones de este diseño
 ¿Y si volvemos a cambiar el elemento con el que presentamos?
 ¿Y si quiero presentar la misma información en más de un sitio?
 Alto acoplamiento entre la figura y el medio de presentación
 Cambios en el medio de presentación supone revisar el código de la
figura en busca de los puntos en los que ha cambiado
 Necesitamos resolver el comportamiento de la aplicación de otra
forma…
Simulación del patrón … (3)
Solución: Patrón Observer
 Propósito: permite definir dependencias uno a muchos de forma
que los cambios en un objeto se comuniquen a los objetos que
dependen de él
 Roles:
 Subject: Conoce su lista de Observers y se encarga de notificarles sus
cambios de estado
 Observer: Define la interfaz de actualización debido a las notificaciones
del Subject
 ConcreteObserver
 Implementa la interfaz anterior
 Conoce al Subject y le pregunta por su estado para actualizar el
suyo en consonacia
Simulación del patrón … (3)
Solución: Patrón Observer
Simulación del patrón … (3)
Nuevas clases
Simulación del patrón … (3)
Escenarios 1 y 2 (after)
 ¿Cómo actualizaremos el área de texto?
 Creación de una figura
 MouseDragged
 Cada vez que lo ejecutamos, actualizaremos la información del
cuadro de texto
 MousePressed
 Si se ha pulsado sobre una figura
Simulación del patrón … (3)

Seleccionarla

Actualizar el área de texto
Conclusiones
 Desacoplamiento entre la Figura y sus observadores
 Observadores han de conocer la interfaz de Figura
 Figura sólo realiza la actualización sin conocer el tipo de observador
 ¿Cuándo podemos añadir los observers a la figura?
 Cuidado!! Demasiadas actualizaciones por pequeños cambios de
estados
 Observers que reciban información más concreta que la figura en sí
misma
Simulación del patrón … (3)
Conclusions
Simulación del patrón … (3)
Descargar

Document