gwt iv -mvp

10
GWT, Google Web Toolkit Parte 4: Modelo Vista Presentador Manuel Carrasco Moñino Seminarios de JavaHispano (16-Abril-2010) [email protected]

Upload: manuel-carrasco-monino

Post on 23-Jun-2015

2.859 views

Category:

Documents


2 download

DESCRIPTION

GWT Parte-4. Modelo Vista PresentadorSeminarios JavaHispano.Universidad S.Pablo CEU MadridAbril 2010

TRANSCRIPT

Page 1: Gwt IV -mvp

GWT, Google Web ToolkitParte 4: Modelo Vista Presentador

Manuel Carrasco MoñinoSeminarios de JavaHispano (16-Abril-2010)[email protected]

Page 2: Gwt IV -mvp

Aplicaciones Complejas RIA, modelo MVP

Page 3: Gwt IV -mvp

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

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

MVP + EventBus + Patron Comando

• Muy desacoplado• Dependencias muy simples

Page 6: Gwt IV -mvp

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

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

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

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

Manuel Carrasco Mo inoñ

http://manolocarrasco.blogspot.comtwitter.com/dodotis

[email protected]

Preguntas