Está en la página 1de 10

10/10/2020 MVC (Model, View, Controller) explicado.

MVC (Model, View,


Controller) Explicado.
Uriel Hernandez CTO

Lees en 3 Min. 160454 visitas 22/02/15


El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de
software que, utilizando 3 componentes (Vistas, Models y
Controladores) separa la lógica de la aplicación de la lógica de la vista
en una aplicación. Es una arquitectura importante puesto que se utiliza
tanto en componentes grá cos básicos hasta sistemas empresariales;
la mayoría de los frameworks modernos utilizan MVC (o alguna
adaptación del MVC) para la arquitectura, entre ellos podemos
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 1/10
10/10/2020 MVC (Model, View, Controller) explicado.

mencionar a Ruby on Rails, Django, AngularJS y muchos otros más. En

este pequeño artículo intentamos introducirte a los conceptos del


MVC.

UNA IMAGEN

UNA ANALOGÍA

Una que me gusta mucho es la de la televisión. En tu televisión puedes


https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 2/10
10/10/2020 MVC (Model, View, Controller) explicado.
Una que me gusta mucho es la de la televisión. En tu televisión puedes
ver distintos canales distribuidos por tu tu proveedor de cable o
televisión (que representa al modelo), todos los canales que puedes

ver son la vista, y tú cambiando de canal, controlando qué ves


representas al controlador.

LA EXPLICACIÓN

Los puntos anteriores so sólo para proveer background, y que ojalá


puedas utilizar las referencias ahora que vamos a explicar qué es.

Antes que nada, me gustaría mencionar por qué se utiliza el MVC, la


razón es que nos permite separar los componentes de nuestra
aplicación dependiendo de la responsabilidad que tienen, esto
signi ca que cuando hacemos un cambio en alguna parte de nuestro
código, esto no afecte otra parte del mismo. Por ejemplo, si
modi camos nuestra Base de Datos, sólo deberíamos modi car el
modelo que es quién se encarga de los datos y el resto de la
aplicación debería permanecer intacta. Esto respeta el principio de la
responsabilidad única. Es decir, una parte de tu código no debe de
saber qué es lo que hace toda la aplicación, sólo debe de tener una
responsabilidad.

En web, el MVC funcionaría así. Cuando el usuario manda una petición


al navegador, digamos quiere ver el curso de AngularJS, el controlador
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 3/10
10/10/2020 MVC (Model, View, Controller) explicado.

responde a la solicitud, porque él es el que controla la lógica de la app,

una vez que el controlador nota que el usuario solicitó el curso de


Angular, le pide al modelo la información del curso.

El modelo, que se encarga de los datos de la app, consulta la base de


datos y digamos, obtiene todos los vídeos del curso de AngularJS, la
información del curso y el título, el modelo responde al controlador
con los datos que pidió (nota como en la imagen las echas van en
ambos sentidos, porque el controlador pide datos, y el modelo
responde con los datos solicitados).

Una vez el controlador tiene los datos del curso de AngularJS, se los
manda a la vista, la vista aplica los estilos, organiza la información y
construye la página que vez en el navegador.

Resumamos entonces los conceptos.

MODELO

Se encarga de los datos, generalmente (pero no obligatoriamente)


consultando la base de datos. Actualizaciones, consultas, búsquedas,
etc. todo eso va aquí, en el modelo.

CONTROLADOR
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 4/10
10/10/2020
CONTROLADOR MVC (Model, View, Controller) explicado.

Se encarga de... controlar, recibe las órdenes del usuario y se encarga


de solicitar los datos al modelo y de comunicárselos a la vista.

VISTAS

Son la representación visual de los datos, todo lo que tenga que ver
con la interfaz grá ca va aquí. Ni el modelo ni el controlador se
preocupan de cómo se verán los datos, esa responsabilidad es
únicamente de la vista.

CONCLUSIÓN

Si eres una persona práctica como este usuario en quora tal vez
quieras intentar con algún framework que utilice MVC. Mis
recomendaciones personales son Ruby on Rails en el mejor de los
casos, promueve muchas buenas prácticas, Laravel si lo tuyo es PHP,
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 5/10
10/10/2020
casos, p o ue e uc as bueMVC
as(Model,
p ác cas, a a e s o uyo es
View, Controller) explicado.
,
Django si lo tuyo es Python, este tutorial de @jorge_vgut si lo tuyo es
Android, AngularJS, EmberJS o Backbone si lo tuyo es javaScript en el

fronted, SailJS o Express si eres más de NodeJS. No es necesario que


re escribas el hilo negro y crees tu propio sistema MVC, allá afuera
hay muchos buenos frameworks con años de desarrollo que aplican
este patrón de diseño.

En mi experiencia, es importante que para que apliques los principios


y buenas prácticas del MVC tengas un background fuerte en
programación orientada a objetos.

Si tienes dudas por favor déjalas en los comentarios trataremos de


solucionarlas :) Si te gusto el artículo, puedes compartirlo

Otros artículos del blog

Realmente conoces los strings en Python?

4 Min. Eduardo Ismael García Pérez

Qué aprenderás en el curso de JavaScript de CódigoFacilito

3 Min.
Uriel Hernandez
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 6/10
10/10/2020 MVC (Model, View, Controller) explicado.

Monitorear cambios en nuestros modelos con Ruby on Rails PT2

3 Min.
Eduardo Ismael García Pérez

¿Cómo crear aplicaciones en tiempo real?

5 Min.
Eduardo Ismael García Pérez

Comentarios

David
25 Octubre 19
3 
Que buena explicación, pero tengo a una duda, un controlador puede llamar a
diferentes modelos? O el controlador solo se puede comunicar con un único
modelo? Espero me puedan sacar de la duda

Responder

Kaltre10
21 Enero 19

excelente muy bien explicado! tengo una duda que surgió al poner en practica un
pequeño proyecto, espero me puedan orientar, se entiende que los modelos se
conectan con la base de datos y el controlador interviene entre el modelo y las
vistas ademas de encargarse de la "lógica"  eso quiere decir que los algoritmos
con los que se tratan los datos obtenidos de los modelos o mensajes y
resultados van en el controlador? como las estructuras de control, interacciones
etc?   porque hay métodos en los modelos que se conectan con la base de datos
y al mismo realizan alguna acción como un switch con los registros obtenidos
para algún requerimiento de la aplicación y no se si este correcto hacerlo de esa
https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 7/10
10/10/2020 MVC (Model, View, Controller) explicado.
pa a a gú eque e o de a ap cac ó y o se s es e co ec o ace o de esa
manera.

Responder Ver respuestas (1)

Carlos
09 Septiembre 18

Muchas Gracias por la explicacion aclararon mis dudas :D

Responder

Carlos
09 Septiembre 18

Muchas Gracias por la explicacion aclararon mis dudas :D

Responder

Roy
18 Noviembre 17

Buen Articulo y bien explicado ahora por los cursos de POO y luego laravel :)

Responder

Oscar Diaz
11 Octubre 17

Hola buen dia, buen articulo, creo que lo has resumido bien y de manera muy
entendible. Solo una duda, pues tenia entendido que Laravel no es un framework
MVC.

https://styde.net/porque-laravel-no-es-mvc-y-tu-deberias-olvidarte-de-mvc/

Responder Ver respuestas (1)

Adrián Alvarez
25 Septiembre 17

Muy bien explicado.

Saludos desde Uruguay


https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 8/10
10/10/2020 MVC (Model, View, Controller) explicado.

Responder Ver respuestas (1)

Kraniwm 
08 Agosto 17
Buena Explicacion.

Responder

01 Abril 17 
Esta pagina te engancha con todo su contenido, si enverdad quieres aprender es
como un santo grial de conocimientos.

Responder

Zoilo Granda
15 Marzo 17

Excelente y sencilla explicación, gracias

Responder Ver respuestas (1)

Código Facilito

Cursos

Términos y Condiciones

Aviso de privacidad

Contacto

https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 9/10
10/10/2020 MVC (Model, View, Controller) explicado.

Hecho con 💚en México para todo el mundo de habla hispana.

https://codigofacilito.com/articulos/mvc-model-view-controller-explicado 10/10

También podría gustarte