Descripcion:

MVP es un patrón de arquitectura de software diseñada para facilitar pruebas unitarias e integracion automatizadas y separa la lógica de la aplicacion de la interfaz de usuario.

  • El modelo es una interfaz que define los datos que se mostrará o no actuado en la interfaz de usuario.

  • El presentador actúa sobre el modelo y la vista. Recupera datos de los repositorios (el modelo), y los formatea para mostrarlos en la vista.

  • La vista es una interfaz pasiva que exhibe datos (el modelo) y órdenes de usuario de las rutas (eventos) al presentador para actuar sobre los datos.

Dado que la Vista y el Presentador trabajan en estrecha colaboración, deben tener una referencia entre ellos. Para hacer que la unidad del presentador sea verificable con JUnit, la vista se abstrae y se utiliza una interfaz para ello. La relación entre el Presentador y su Vista correspondiente se define en una clase de interfaz de Contrato, lo que hace que el código sea más legible y la conexión entre los dos sea más fácil de entender.

Beneficios:

El patrón Modelo-Vista-Controlador tiene dos desventajas principales: en primer lugar, la Vista tiene una referencia tanto al Controlador como al Modelo; y, en segundo lugar, no limita el manejo de la lógica de UI a una sola clase, ya que esta responsabilidad se comparte entre el Controlador y la Vista o el Modelo. El patrón Model-View-Presenter resuelve ambos problemas al romper la conexión que la Vista tiene con el Modelo y al crear solo una clase que maneja todo lo relacionado con la presentación de la Vista: el Presenter: una clase única que es fácil de unir. prueba.

Desventajas del patrón de modelo-vista-presentador:

El patrón Model-View-Presenter trae consigo una muy buena separación de preocupaciones. Si bien esto es seguro como un profesional, al desarrollar una aplicación pequeña o un prototipo, esto puede parecer una sobrecarga. Para disminuir el número de interfaces utilizadas, algunos desarrolladores eliminan la clase de interfaz de contrato y la interfaz para el presentador.

Uno de los escollos de MVP aparece cuando se mueve la lógica de UI al Presentador: esto se convierte ahora en una clase que todo lo sabe, con miles de líneas de código. Para resolver esto, divida el código aún más y recuerde crear clases que tengan una sola responsabilidad y sean verificables por unidad.