¿Qué hace un controlador en el patrón MVC?

| Última modificación: 8 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El mundo de la programación ha desarrollado el concepto de patrones, soluciones estándar para resolver determinados problemas. Uno de los patrones más conocidos es el modelo vista controlador, también llamado MVC por sus siglas. En este post, te enseñaremos qué es y qué hace un controlador en el patrón MVC, un concepto fundamental para el funcionamiento de esta técnica.

¿Qué es un controlador en el patrón MVC?

Como puedes leer en nuestro post sobre el modelo vista controlador, un controlador en el patrón MVC se dedica a gestionar la comunicación entre las otras dos partes de esta técnica. Es decir, entre el modelo de datos y la vista. Desde la teoría este concepto es muy sencillo de entender. Sin embargo, cuando nos sentamos a ver nuestro código y pensamos en segmentarlo según este patrón, comprender las funciones del controlador es un poco más difícil.

Muchas veces nos preguntan cuánta lógica podemos meter en un controlador en el patrón MVC. La realidad es que finalmente tu código es tuyo y puedes hacer con él lo que desees. Sin embargo, implementar el patrón MVC tiene el objetivo de segregar responsabilidades, por lo que si estás aplicando lógica al controlador, tal vez no estás implementando el patrón correctamente. A pesar de esto, puede haber ocasiones en las que cumplir con la entrega de un proyecto nos fuerza a modificar las reglas. Esta es la magia del desarrollo web, que siempre habrá la posibilidad de refactorizar y mejorar código más adelante.

Ya que el controlador es un concepto un poco más ambiguo que los dos otros segmentos de este patrón, a continuación te enseñaremos exactamente qué hace un controlador en el patrón MVC.

¿Qué hace un controlador en el patrón MVC?

Un controlador en el patrón MVC es una sección de código, ojalá dividida en un archivo aparte, que tiene muchas funciones. A continuación, te contamos las funciones más importantes de este segmento de código en el contexto de JavaScript para frontend.

Desde el backend, un controlador en el patrón MVC se entiende más como una reacción o consecuencia de consumir un endpoint. Para el frontend, este concepto es más complejo y tiene las siguientes funciones.

Intermediar

Como mencionamos anteriormente, una de las misiones principales del controlador en el patrón MVC es orquestar la intermediación entre el modelo y la vista. En este sentido, también estaría ejecutando el desacoplamiento de las dos capas.

Controlar

Como su nombre indica, un controlador también controla. ¿Y qué controla exactamente? Pues uno de los elementos que seguramente controlará serán los eventos que se reciban de la interacción del usuario con la vista.

En relación al segmento de modelo, el controlador también podría ejecutar la validación de datos que reciba nuestro proyecto, sean de la fuente que sean. Es decir, si tenemos algún formulario, el controlador debería recoger los datos cuando el usuario haga clic sobre un botón submit y gestionarlos de la manera que definamos. Algunos ejemplos de esta gestión son la validación de los datos de ingreso y la revisión de la longitud de los datos, como ocurre con las contraseñas de mínimo 8 caracteres.

Aplicar lógica

Otra manera de entender lo que hace un controlador en el patrón MVC es pensar en que este segmento de código ejecutará una lógica sobre una parte de nuestro elemento HTML. Es decir, hará un trozo de JavaScript que se va a encargar de orquestar reacciones sobre un trozo de HTML. Este trozo HTML puede pensarse como un nodo del DOM o etiqueta específica.

Gestionar errores

Otra de las funciones de un controlador en este patrón es la gestión de errores, ya sea en el procesamiento de los datos o de la vista.

Si todavía tienes dudas sobre la implementación del controlador en un proyecto web, te invitamos a leer nuestros posts sobre identificar el modelo vista controlador y sobre implementar el modelo vista controlador.

¿Quieres seguir aprendiendo?

Ahora sabes exactamente qué es y qué hace un controlador en el patrón MVC, con lo que te acercas cada vez más a dominar los distintos conceptos del desarrollo web. Sin embargo, ¡todavía queda mucho por aprender! Por ello, te invitamos a nuestro Desarrollo Web Full Stack Bootcamp, un espacio de formación intensiva donde aprenderás a dominar lenguajes como JavaScript, HTML, CSS, JSX y más. ¿A qué esperas para cumplir tu sueño de ser un desarrollador web? ¡No lo dudes más e inscríbete!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado