El Model View Controller o comunmente conocido como MVC es un patrón de arquitectura de software que consiste en separar, en tres componentes disitintos, los datos, la interfaz y la lógica del negocio de una aplicación.
Este tipo de patrón, es común en aplicaciones del tipo Web, donde claramente se puede ver que la interfaz es el código HTML. Otra aplicación , más moderna, de este patrón es en el desarrollo de aplicaciones Móviles.
Si regresamos por un momento al nombre de este post, vamos a notar que esta compuesto por tres palabras Modelo, Vista y Controlador. Aprender estos tres conceptos son, entonces, de suma importancia para aprender como trabaja el patrón.
-
Modelo: Esta conformado por los datos que forman parte de la aplicación, engloba los métodos necesarios para acceder (lógica) y manipular los datos. El modelo debe de ser fácil de entender, y capaz de soportar a la mayor variedad de clientes. Debe de tener una interfaz que permita exponer los métodos para acceder y actualizar el estado de los objetos y ejecutar procesos complejos. El modelo contiene servicios que son accedidos por el controlador, ya sea para consulta o efectuar algunos cambio de estado. El modelo debe notificar a la vista cuando exista algún cambio de estado.
- Vista: Se encarga de presentar, al cliente, el estado del modelo en un formato adecuado para interactuar. Usualmente es conocida como la interfaz de usuario. La semántica de la presentación se
encapsulado dentro de la vista, por lo tanto los datos del modelo se puede adaptar para diferentes tipos de clientes. La vista debe de actualizarse cuando hay un cambio en el modelo. - Controlador: Se encarga de responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista. El controlador se encarga de seleccionar la siguiente vista basado en el usuario de entrada y el resultado de las operaciones del modelo.
Veamos, gráficamente, la interacción entre estos tres componentes:
Para que quede claro el funcionamiento de MVC, analicemos el siguiente ejemplo:
Caso: Imaginemos que hemos desarrollado una página de Registro de Datos. El usuario, luego de ingresar la informacion necesaria, pulsa el botón OK. En ese momento, el uso de MVC en nuestra aplicación lleva a lo siguiente:
- El usuario interactúa con la interfaz de usuario, pulsando el botón OK ( o cualquier otro tipo de disparador).
- El controlador recibe (por parte de los objetos de la vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.
- El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario.
- 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(según los permisos o roles que tenga) donde se reflejan los cambios en el modelo. Durante la interacción el controlador no pasa objetos de dominio (el modelo) 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.
- La interfaz de usuario (vista) espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.
Espero que con este post quede claro lo que significa el modelo vista controlador, dado que lo voy a usar en un próximo post.
Artículos similares
Autor: Victor Parasi
Siempre es difícil escribir sobre uno mismo, qué contar, o por donde empezar, suele ser todo un dilema al momento de presentarse. Aquí vamos. Les diré que soy peruano, Ingeniero por vocación, dedicado a la docencia y siempre en la búsqueda de programar cada vez mejor. Aunque a veces algo terco, sé que no todo en la vida es blanco o negro. Existe el Open Source, y lo respeto pero me llevo mejor con el .Net. Si me hablas de preferencias, te digo que C#, C++, una buena película, colores oscuros, escribir, leer e investigar. Para terminar les diré que amo muchísimo a una mujer espectacular y que es la dueña de mi corazón.

Excelente articulo, ustedes escriben lo que necesito justo cuando lo necesito, ya tenia tiempo que no escribian un articulo, o al menos no lo habias visto, pero ahora que estoy estudiando java y struts esto me cae como anillo al dedo
Que feliz coincidencia, ya pronto sale un ejemplo de MVC, pero en ASP.NET.
Excelente articulo. gracias por seguir entregandonos esta informacion tan valiosa. Excelente inicio de año. Saludos
Gracias!.