Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Elena Sandoval Padilla Modificado hace 8 años
1
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Simulación del patrón … (5)
2
Editor gráfico: 5ª Iteración Manipulaciones en las figuras Se realizan con la herramienta de selección Esquina superior izquierda = Extender/Encoger Cambia el tamaño de la figura proporcionalmente Esquina inferior derecha = estirar Estira la figura, dejando fija la esquina superior izquierda
3
Simulación del patrón … (5) Clases iniciales
4
Simulación del patrón … (5) Escenario 1: Encoger una figura ¿Cómo se encoge la figura seleccionada? Hay una figura seleccionada y tenemos activa la herramienta de selección MousePressed Si se ha pulsado sobre la figura seleccionada Obtener el tipo de manipulación que realizaremos sobre la figura MouseDragged Si el manipulador es de tipo “encoger” Encoger la figura
5
Simulación del patrón … (5) Escenario 2: Estirar una figura ¿Cómo se estira la figura seleccionada? Hay una figura seleccionada y tenemos activa la herramienta de selección MousePressed Si se ha pulsado sobre la figura seleccionada Obtener el tipo de manipulación que realizaremos sobre la figura MouseDragged Si el manipulador es de tipo “estirar” Estirar la figura
6
Simulación del patrón … (5) Escenario 3: Mover una figura ¿Cómo se estira la figura seleccionada? Hay una figura seleccionada y tenemos activa la herramienta de selección MousePressed Si se ha pulsado sobre la figura seleccionada Obtener el tipo de manipulación que realizaremos sobre la figura MouseDragged Si el manipulador es de tipo “mover” Mover la figura
7
Simulación del patrón … (5) Conclusiones de este diseño De nuevo, código spaghetti if…then…else if La misma herramienta ha de usar las figuras de varias formas distintas Hay que adaptar su comportamiento al tipo de manipulación Necesitamos estructurar las clases de otra forma…
8
Simulación del patrón … (5) Solución: Patrón Adapter Propósito: Convierte la interfaz de una clase a la que esperan los clientes Roles (basado en composición): Target: Define la interfaz que espera el cliente Adaptee: Implementa la interfaz que queremos adaptar Adapter: Adapta la interfaz de adaptee a target
9
Simulación del patrón … (5) Nuevas clases
10
Simulación del patrón … (5) Escenario 1, 2 y 3 (after): Manipular una figura ¿Cómo se manipula (en general) la figura seleccionada? Hay una figura seleccionada y tenemos activa la herramienta de selección MousePressed Si se ha pulsado sobre la figura seleccionada Obtener el Manipulador que realizaremos sobre la figura MouseDragged Invocar el método de manipulación del Manipulador
11
Simulación del patrón … (5) Conclusiones Se ha eliminado el código spaguetti Se ha adaptado toda la funcionalidad para toda la jerarquía de figuras de una sola vez Problema Buscar la interfaz más “estricta” posible Redefinir el comportamiento de la clase adaptada puede suponer revisar la interfaz
12
Simulación del patrón … (5) Conclusions
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.