Patrón Modelo-Vista-Controlador (MVC): Arquitectura Esencial para Desarrollo de Software

Clasificado en Informática

Escrito el en español con un tamaño de 4,57 KB

Patrón Modelo-Vista-Controlador (MVC): Arquitectura Esencial para el Desarrollo de Software

El Modelo-Vista-Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario y la lógica de control en tres componentes distintos. Este patrón se utiliza frecuentemente en aplicaciones web, donde la Vista es la página HTML y el código que provee datos dinámicos a la página. El Modelo representa el Sistema de Gestión de Base de Datos y la lógica de negocio, mientras que el Controlador es el responsable de recibir los eventos de entrada desde la Vista.

Descripción del Patrón MVC

Modelo

El Modelo es la representación específica de la información con la cual el sistema opera. En resumen, el Modelo se limita a lo relativo a la Vista y su Controlador, facilitando las presentaciones visuales complejas. El sistema también puede operar con datos no relacionados directamente con la presentación, haciendo uso integrado de otras lógicas de negocio y datos afines con el sistema modelado.

Vista

La Vista presenta el Modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.

Controlador

El Controlador responde a eventos, usualmente acciones del usuario, e invoca peticiones al Modelo y, probablemente, a la Vista.

Integración y Beneficios del MVC

Muchos sistemas informáticos utilizan un Sistema de Gestión de Base de Datos (SGBD) para gestionar los datos; en líneas generales, dentro del patrón MVC, esto corresponde al Modelo. La unión entre la capa de presentación y la capa de negocio, conocida en el paradigma de la Programación por Capas, representaría la integración entre la Vista y su correspondiente Controlador de eventos y acceso a datos. El patrón MVC no pretende discriminar entre la capa de negocio y la capa de presentación, pero sí busca separar la capa visual gráfica de su correspondiente programación y acceso a datos. Esto mejora significativamente el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos componentes cumplen ciclos de vida muy distintos entre sí.

Flujo de Control Típico en MVC

Aunque se pueden encontrar diferentes implementaciones del patrón MVC, el flujo de control generalmente sigue los siguientes pasos:

  1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, pulsa un botón, un enlace, etc.).
  2. El Controlador recibe (por parte de los objetos de la interfaz de usuario o Vista) la notificación de la acción solicitada por el usuario. El Controlador gestiona el evento, frecuentemente a través de un gestor de eventos (handler) o callback.
  3. El Controlador accede al Modelo, actualizándolo y posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el Controlador actualiza el carrito de la compra del usuario). Los controladores complejos a menudo están estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.
  4. El Controlador delega a los objetos de la Vista la tarea de desplegar la interfaz de usuario. La Vista obtiene sus datos del Modelo para generar la interfaz apropiada para el usuario, donde se reflejan los cambios en el Modelo (por ejemplo, produce un listado del contenido del carrito de la compra). Es crucial que el Modelo no tenga conocimiento directo sobre la Vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el Modelo y la Vista, permitiendo al Modelo notificar a los interesados de cualquier cambio. Un objeto Vista puede registrarse con el Modelo y esperar a los cambios, pero aun así el Modelo en sí mismo sigue sin saber nada de la Vista. El Controlador no pasa objetos de dominio (el Modelo) directamente a la Vista, aunque puede dar la orden a la Vista para que se actualice. (Nota: En algunas implementaciones, la Vista no tiene acceso directo al Modelo, dejando que el Controlador envíe los datos del Modelo a la Vista).
  5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

Entradas relacionadas: