Spring Vaadin Hibernate Tutorial > 8. El patrón MVP.

Escrito por 9 junio, 2016Desarrollo de software
Tutorial Spring Vaadin HIbernate, El patrón MVP

En este octavo y último paso del tutorial Spring Vaadin Hibernate vamos a centrarnos en el patrón MVP (Modelo – Vista – Presentador), que es el que hemos elegido seguir tanto en el proyecto de ejemplo como en nuestro proyecto real.

¿En qué consiste el patrón MVP?

Este patrón es una derivación del patrón MVC (Modelo – Vista – Controlador), separando la lógica de negocio de la interfaz de usuario y consiguiendo así un desacoplamiento de cada una de las partes. Cuenta con los siguientes elementos:

  • Modelo: donde se lleva a cabo toda la lógica de negocio.
  • Vista: es la encargada de mostrar los datos obtenidos del modelo e informar al presentador de las acciones ejecutadas por el usuario. Por otro lado, obtiene del presentador los datos actualizados procedentes del modelo, modificando el contenido de los componentes gráficos (campos de texto, desplegables, botones…).
  • Presentador: es el encargado de escuchar los eventos que se producen en la vista y ejecutar las acciones necesarias a través del modelo.

Captura

La ventaja más importante del patrón MVP es la facilidad que nos ofrece para testear nuestra aplicación, ya que dado que hemos separado de forma clara nuestra interfaz en estos tres elementos, la creación de tests puede realizarse de una manera bastante más sencilla.

Ejemplo de MVP en nuestra aplicación

Vamos a coger de ejemplo la clase AddressBrowser. Esta clase es nuestra vista, la cual tendrá un presentador inyectado, AddressBrowserPresenter. Como hemos comentado antes, es la encargada de visualizar los componentes gráficos y de llamar al presentador cuando se requiera ejecutar lógica de negocio (acciones, llamadas a base de datos…). Por ejemplo, la acción de eliminar un item y actualizar el componente Grid (método deleteItemAndUpdateGrid):

A continuación vemos nuestro presentador, AddressBrowserPresenter. En él se definen todas las acciones que necesiten lógica de negocio de la aplicación, como son las llamadas a los servicios. Siguiendo el ejemplo, se realiza la llamada al método delete del servicio addressService inyectado para eliminar un item del Grid. Tras llamar al servicio correspondiente, el propio presentador se encarga de invocar a los métodos de la vista adecuados para refrescar los componentes gráficos o, si ha habido errores en la ejecución, lanzar una excepción para mostrarle el error al usuario.

Y por último, en nuestro modelo se implementa la lógica de la aplicación, que en este caso podemos ver representada en la implementación del método delete de la clase ServiceAddressImpl.

Conclusiones

  • El presentador es el intermediario entre la vista y el modelo. Lo que nos permite que cualquiera de las dos pueda ser sustituida sin que la otra se vea afectada, consiguiendo una separación completa entre la parte visual y la lógica de negocio de la aplicación.
  • La vista no conoce el modelo, por lo que es fácilmente testeable.
  • El presentador es independiente de la interfaz de usuario, por lo que también es fácilmente testeable.

¡Con este último paso damos por finalizado nuestro tutorial de Spring – Vaadin – Hibernate!

Muchas gracias por seguirnos y por vuestras consultas. Cualquier duda que tengan no duden en escribirnos un comentario y estaremos encantados de solucionarlas. Además recuerden que todo el código desarrollado para este tutorial lo pueden encontrar en: https://github.com/mhpes/svh-simple-crud-tutorial.

¡Un saludo!

 

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies