Gwt IV -mvp

3,439 views

Published on

GWT Parte-4. Modelo Vista Presentador
Seminarios JavaHispano.
Universidad S.Pablo CEU Madrid
Abril 2010

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,439
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
76
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Gwt IV -mvp

  1. 1. GWT, Google Web Toolkit Parte 4: Modelo Vista Presentador Manuel Carrasco Moñino Seminarios de JavaHispano (16-Abril-2010) manolo@apache.org
  2. 2. Aplicaciones Complejas RIA, modelo MVP
  3. 3. 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
  4. 4. 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
  5. 5. MVP + EventBus + Patron Comando • Muy desacoplado • Dependencias muy simples
  6. 6. 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
  7. 7. 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)
  8. 8. 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.
  9. 9. 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
  10. 10. Preguntas Manuel Carrasco Moñino http://manolocarrasco.blogspot.com twitter.com/dodotis manolo@apache.org

×