Model-View-Controller

Modelo-Vista-Controlador (MVC)

Uno de los principios básicos en el diseño y desarrollo de Software es la separación de responsabilidades. El software ha de estructurarse en módulos/componentes/clases de forma que cada elemento tenga una responsabilidad distinta y las responsabilidades no estén dispersas a lo largo del código, sino bien identificadas y empaquetadas en un determinado componente Software.

Cuando hablamos del desarrollo de aplicaciones que tienen un interfaz gráfico, seguramente el patrón de diseño más utilizado para conseguir este objetivo es el Modelo-Vista-Controlador.

El patrón Modelo-Vista-Controlador divide la aplicación en tres componentes:

  • El Modelo: Es el componente central de la aplicación. Representa la estructura de los datos manejados por la aplicación, independientemente del interfaz de usuario. Maneja directamente los datos, la lógica y las reglas de la aplicación. Si el estado de los datos cambia, el modelo generalmente lo notificará a la vista y a veces al controlador.
  • La Vista: Es la representación visual de la información. Por ejemplo, un diagrama, una tabla, un gráfico… Es posible tener múltiples vistas de la misma información.
  • El Controlador: El controlador acepta entradas del usuario y las convierte en comandos para el modelo o la vista. Dicho de otra manera, realiza actualizaciones sobre el modelo y sobre las vistas en respuesta a las entradas de los usuarios de la aplicación.

Por ejemplo. Imaginemos una aplicación de carrito de la compra.

  • El modelo sería responsable de manejar los datos del carrito, como el contenido del mismo, el total de la compra y la información del usuario. También sería responsable de realizar cualquier operación necesaria sobre los datos, como agregar o eliminar elementos del carrito y calcular el total de la compra.
  • La vista sería responsable de mostrar al usuario la información del carrito y permitirle interactuar con él. Por ejemplo, la vista podría mostrar una lista de los artículos en el carrito, permitir al usuario eliminar artículos del carrito y proporcionar un botón de pago para la compra.
  • El controlador sería responsable de manejar las interacciones del usuario con la vista y actualizar el modelo según corresponda. Por ejemplo, si el usuario hace click en el botón de “eliminar” en la vista, el controlador actualizaría el modelo para reflejar la eliminación del artículo del carrito y luego actualizaría la vista para mostrar la nueva lista de artículos.
Comparte

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *