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](https://yosoydani.com/wp-content/uploads/2017/11/unnamed-file-1.jpg)
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
Fuente: https://es.slideshare.net