bienvenidos

La Única Fuente del Conocimiento es la Experiencia -Albert Einsten.

lunes, 4 de noviembre de 2019

MVC vs MVP

Los patrones son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
Patrones de arquitectura: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software.
Patrones de Diseño: Aquellos que expresan esquemas para definir estructuras de diseño (o sus relaciones).
Resultado de imagen para patrones de software

Los patrones de arquitectura, nos permiten mantener un proyecto limpio, escalable, fácil de mantener y de testear. 
Los patrones de diseño nos muestran soluciones al momento de diseñar un software, soluciones de estructura de clases y re utilización de componentes.
Los patrones de diseño y de arquitectura no son nuevos, están con nosotros aproximadamente desde los años 70 y sus creadores los comenzaron a utilizar para solucionar problemas de sobre escritura de código en los proyectos web que implementaban. Varias tecnologías se han adaptado a utilizar este patrón y en muchos de los casos los desarrolladores adecuan el lenguaje a los patrones.

MVC El modelo-vista-controlador (MVC) es un patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista, y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario. Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.
MVP El modelo-vista-presentar (MVP) es una derivación del patrón arquitectónico modelo-vista-controlador (MVC), y es utilizado mayoritariamente para construir interfaces de usuario. En MVP el presentador asume la funcionalidad del “medio- hombre”. En MVP, toda lógica de presentación es colocada al presentador.
Diferencias. En el MVC, el modelo notifica a la vista cualquier cambio que sufra el estado del modelo. La información puede pasarse en la propia notificación, o después de la notificación, la vista puede consultar el modelo directamente para obtener los datos actualizados. Por el contrario, en el MVP, la vista no sabe nada sobre el modelo y la función del presentador es la de mediar entre ambos, enlazando      los datos con la vista.
En el modelo MVC, la vista tiende a tener más lógica porque es responsable de manejar las notificaciones del modelo y de procesar los datos. En el modelo MVP, esa lógica se encuentra en el presentador, haciendo a la vista “estúpida”. Su única función es representar la información que el presentador le ha proporcionado.  En MVC, el modelo tiene lógica extra para interactuar con la vista. En el MVP, esta lógica se encontraría en el presentador.

Fuente: https://es.slideshare.net