GWT, Google Web Toolkit
Parte 4: Modelo Vista Presentador




            Manuel Carrasco Moñino
            Seminarios de...
Aplicaciones Complejas RIA, modelo MVP
MVC (Modelo vista controlador)

•   Struts, JFace, Spring mvc, ASP, Grails, ROR, etc
•   Vista no testeable (o dificil)
• ...
MVP (Modelo Vista Presentador)
•   Swing, awt, swt, echo2, vaadin, gwt ...
•   Vista Testeable unitariamente.
•   TDD pero...
MVP + EventBus + Patron Comando

• Muy desacoplado
• Dependencias muy simples
Resumiendo: ¿Qué es MVP?
• MVP patrón derivado de MVC que ayuda a separar mucho la vista
• La clave es una estricta regula...
MVP + Gwt, la clave: el presentador
• Componente encargado de “presentar” las acciones del usuario al sistema y obtener
  ...
MVP, Consideraciones
• El patrón MVP, no puede ser implementado sin haber hecho
    un análisis previo que determine que m...
MVP explicación de clases y
    métodos:
• EventBus:
        – addEvent(type, action),
        – fireEvent(type, data)
• D...
Preguntas




            Manuel Carrasco Moñino

               http://manolocarrasco.blogspot.com
                      ...
Próxima SlideShare
Cargando en…5
×

Gwt IV -mvp

3.390 visualizaciones

Publicado el

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

0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
3.390
En SlideShare
0
De insertados
0
Número de insertados
43
Acciones
Compartido
0
Descargas
76
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

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

×