Gwt IV -mvp
-
Upload
manuel-carrasco-monino -
Category
Documents
-
view
2.859 -
download
2
description
Transcript of Gwt IV -mvp
![Page 1: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/1.jpg)
GWT, Google Web ToolkitParte 4: Modelo Vista Presentador
Manuel Carrasco MoñinoSeminarios de JavaHispano (16-Abril-2010)[email protected]
![Page 2: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/2.jpg)
Aplicaciones Complejas RIA, modelo MVP
![Page 3: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/3.jpg)
MVC (Modelo vista controlador)
• Struts, JFace, Spring mvc, ASP, Grails, ROR, etc• Vista no testeable (o dificil)• Desarrollo lento• Vinculos complejos
• Muy acoplado• Dependencias cruzadas
![Page 4: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/4.jpg)
MVP (Modelo Vista Presentador)
• Swing, awt, swt, echo2, vaadin, gwt ...• Vista Testeable unitariamente.• TDD pero desarrollo lento.• Vinculos muy sencillos: 1 → 1
• Objetivo: Crear una vista simple– Testabilidad de la vista no es necesaria
porque utilizamos componentes testados.
– Se pueden crear Mock muy simples• Desarrollo Rapido con TDD
![Page 5: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/5.jpg)
MVP + EventBus + Patron Comando
• Muy desacoplado• Dependencias muy simples
![Page 6: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/6.jpg)
Resumiendo: ¿Qué es MVP?
• MVP patrón derivado de MVC que ayuda a separar mucho la vista• La clave es una estricta regulación de la interacción entre la vista y el
presentador• La vista y el modelo de datos estan separados a través de un contrato
(interface)• MVP es una mejora de MVC basado en:
– La vista no conoce al modelo.– El presentador es independiente de la tecnología de interfaz de
usuario.– La vista y el presentador son testeables independientemente
![Page 7: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/7.jpg)
MVP + Gwt, la clave: el presentador
• Componente encargado de “presentar” las acciones del usuario al sistema y obtener la respuesta.
• Actúa de la siguiente manera:– Recibe datos de la vista– Convierte los datos de la vista en acciones que se ejecutan contra el sistema– Con la respuesta del sistema, actualiza los datos de la vista.– La navegación a otra vista, deberán ser delegadas en el presentador, que
sabrá de historia, caches, etc. • Se ejecuta en el navegador, pero es testeable en la JVM.• Es la clave del desarrollo ágil en Gwt• Librerías disponibles:
– Gwt-Gin → inyeccion en parte cliente– Gwt-presenter → para el presentador, historia, eventbus– Gwt-dispatch → para el modelo comando (cliente/servidor
presentador/modelo)
![Page 8: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/8.jpg)
MVP, Consideraciones
• El patrón MVP, no puede ser implementado sin haber hecho un análisis previo que determine que miembros deben formar parte del contrato de cada vista.
• Una vez que tenemos claro el contrato que debe implementar cada vista, podemos desarrollar la lógica de presentación de forma paralela al diseño gráfico.
• El patrón MVP puede ser caro de implementar en aplicaciones relativamente sencillas, pero es muy útil en grandes aplicaciones.
![Page 9: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/9.jpg)
MVP explicación de clases y métodos:
• EventBus: – addEvent(type, action), – fireEvent(type, data)
• Dispatcher: – execute(action(request), callback(response))
• XXPresenter, XXDisplay– onBind, revealDisplay
• XXEventHandler, XXEvent• XXAction, XXResult• XXActionHandler
![Page 10: Gwt IV -mvp](https://reader035.fdocuments.co/reader035/viewer/2022073117/5588fd70d8b42a993f8b45ac/html5/thumbnails/10.jpg)
Manuel Carrasco Mo inoñ
http://manolocarrasco.blogspot.comtwitter.com/dodotis
Preguntas