Arquitectura MVP

0
165
Compartir

Un tema fundamental al desarrollar una aplicación en mi opinión es la arquitectura por usar, ya que esto definirá en buena parte el tiempo de desarrollo y el tiempo de vida de la aplicación. Recordemos que en el desarrollo de software hay ciertos principios o ciertas buenas practicas que debemos tener en mente en todo momento. En lo personal hay dos que intento mantener en todos mis desarrollos, los cuales son:
KISS
Recibe su nombre por el acrónimo en inglés que sería Keep It Simple and Stupid, lo que en español podemos traducir como “Mantenerlo simple y bobo”, esto con la idea de que no usemos funciones super complejas y sea fácil incluso para nosotros poder regresar un día y entender lo que hicimos.
DRY
De igual manera es un acrónimo el cual significa Don´t Repeat Yourself (No te repitas a ti mismo). Este principio es increíblemente importante si tenemos una aplicación la cual queremos darle un tiempo de vida largo, ya que habrá que darle mantenimiento y al menos que quieras que ese mantenimiento sea más duro que el desarrollo en si, procura escribir las funcionalidades una vez y volverlas parametrizables.
Ahora que vimos estos dos principios entremos de lleno al MVP.
¿Qué es?
Es un patrón de arquitectura de software parecida al muy conocido MVC Modelo Vista Controlador, pero en está ocasión la definición sería Modelo Vista Presentador. En este caso veremos de una forma simple como funciona:

Como podemos ver todo empieza en la vista, cuando un usuario selecciona un botón o realiza cualquier otra acción está se comunica con el presentador, el cual tiene la autoridad para alterar la vista escondiendo el botón o mostrando un loading para el usuario mientras habla con el modelo y le pide información. Como sabemos las capaz de modelo son las encargadas de comunicarse con nuestra base de datos y/o servicios para devolver información y/o ejecutar lo solicitado por el usuario.
Una vez que el modelo tiene la información se la dará al presentador y este decidirá según la respuesta que acciones tomar en la vista. De esta manera tenemos separados alas 3 capaz base, se que se parece mucho al MVC, pero tiene sus pequeñas diferencias.
 
Mi versión:
Como algunos sabrán soy desarrollador Android y en mis aplicaciones utilizo el MVP con una pequeña variación ya que he agregado una capa más que llamaremos Interactuador. La idea de está capa es la de separar las variaciones de la vista y el manejo de datos de las validaciones que muchas veces debemos hacer a la información dada por el usuario a través de la interfaz.

Como podemos ver tanto el modelo como la nueva capa de Interactuador se comunican de regreso con el presentador, sin embargo, el presentador nunca habla con el modelo. De esta manera la información que llega al modelo ya fue validada según las especificaciones en el Interactuador y si en un caso este encontrar invalidez en los datos lo devuelve al presentador para que muestre el error en la vista.
Source: Javier

Dejar respuesta

Please enter your comment!
Please enter your name here