¿Qué Es El Patrón MVC en Programación y Por Qué Es Útil?
¿Qué Es El Patrón MVC en Programación y Por Qué Es Útil?
¿Qué Es El Patrón MVC en Programación y Por Qué Es Útil?
El Modelo
La Vista
aplicaciones
MVC era inicialmente un patrón arquitectural, un modelo o guía que expresa cómo
organizar y estructurar los componentes de un sistema software , sus
responsabilidades y las relaciones existentes entre cada uno de ellos.
Por tanto, teniendo en cuenta su antigüedad, es obvio que ni siquiera fue ideado
expresamente para sistemas web aunque ahora se use mucho en ellas. Existen
implementaciones para todo tipo de sistemas (escritorio, clientes y servidores web,
servicios web, Single Page Applications o SPA, etc.) y lenguajes (Smalltalk, Java, Ruby,
C++, Python, PHP, JavaScript, NodeJS, etc.).
El Modelo
En la capa Modelo encontraremos siempre una representación de los datos del dominio,
es decir, aquellas entidades que nos servirán para almacenar información del sistema que
estamos desarrollando. Por ejemplo, si estamos desarrollando una aplicación de
facturación, en el modelo existirán las clases Factura, Cliente o Proveedor, entre otras.
La Vista
Por ejemplo, si un usuario está consultando una factura a través de una aplicación web, la
Vista se encargará de representar visualmente el estado actual de la misma en forma de
página visualizable en su navegador. Si en un contexto B2B el cliente de nuestro sistema es
a su vez otro sistema, la vista podría ser un archivo XML con la información solicitada. En
ambos casos se trataría de la misma factura, es decir, la misma entidad del Modelo, pero su
representación es distinta en función de los requisitos.
Cuando las vistas componen la interfaz de usuario de una aplicación, deberán contener
los elementos de interacción que permitan al usuario enviar información e invocar
acciones en el sistema, como botones, cuadros de edición o cualquier otro tipo de elemento,
convenientemente adaptados a la tecnología del cliente.
En el caso de las aplicaciones para la Web, normalmente en la Vista se encontrarán los
componentes capaces de generar el lenguaje de marcado de la página que será enviada
al usuario.
El Controlador
Realizarán también tareas de transformación de datos para hacer que los componentes
de la Vista y el Modelo se entiendan. Así, traducirán la información enviada desde la
interfaz, por ejemplo los valores de campos de un formulario recibidos mediante el
protocolo HTTP, a objetos que puedan ser comprendidos por el Modelo, como pueden las
clases o las entidades del dominio.
El siguiente diagrama refleja las relaciones existentes entre los componentes del Modelo,
Vista y Controlador, y de éstos a su vez con el usuario, o cliente, del sistema:
Como se muestra en el diagrama, las acciones e información procedentes del usuario serán
recogidas exclusivamente por los Controladores. Ningún componente de otra capa debe
acceder a los datos generados desde el cliente, de la misma forma que sólo los componentes
de la Vista estarán autorizados a generar interfaces de usuario con las que enviar
información de retorno.
Pero, por supuesto, no todo es siempre maravilloso, así que su uso presenta también
algunas desventajas, entre las que cabe destacar:
De todos modos, el uso del patrón MVC y sus variantes está claro que ha triunfado en todo
tipo de desarrollos (Web, móvil, de escritorio...) y en todo tipo de plataformas (rara es la
plataforma actual que no lo implementa para uno o varios tipos de desarrollos). En la
actualidad no te puedes permitir el lujo de no conocerlo.
Fecha de publicación: 15 de octubre de 2019