El patrón Modelo Vista Controlador (MVC) separa una aplicación de software en tres componentes: el modelo, la vista y el controlador. El modelo representa los datos y la lógica de negocio, la vista se encarga de la presentación de los datos, y el controlador gestiona las interacciones del usuario y actualiza el modelo.
2. 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.
El estilo de llamada y retorno MVC, se ve
frecuentemente en aplicaciones web, donde:
La vista es la página HTML y el código que provee
de datos dinámicos a la página.
El modelo es el Sistema de Gestión de Base de
Datos y la Lógica de negocio, y
El controlador es el responsable de recibir los
eventos de entrada desde la vista.
3. Descripción
El Modelo es el objeto que representa los datos del programa.
Maneja los datos y controla todas sus transformaciones. El Modelo
no tiene conocimiento específico de los Controladores o de las
Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el
que tiene encomendada la responsabilidad de mantener enlaces
entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia
el Modelo.
La Vista es el objeto que maneja la presentación visual de los
datos representados por el Modelo. Genera una representación
visual del Modelo y muestra los datos al usuario. Interactúa con el
Modelo a través de una referencia al propio Modelo.
El Controlador es el objeto que proporciona significado a las
ordenes del usuario, actuando sobre los datos representados por el
Modelo. Cuando se realiza algún cambio, entra en acción, bien
sea por cambios en la información del Modelo o por alteraciones
de la Vista. Interactúa con el Modelo a través de una referencia al
propio Modelo.
4.
5. Es un patrón de arquitectura de las
aplicaciones software
Separa la lógica de negocio de la
interfaz de usuario
Facilita la evolución por separado de
ambos aspectos
Incrementa reutilización y flexibilidad
6. Modelo-Vista-Controlador
Un modelo
Varias vistas
Varios controladores
Las vistas y los controladores suelen estar muy
relacionados
Los controladores tratan los eventos que se
producen en la interfaz gráfica (vista)
Esta separación de aspectos de una
aplicación da mucha flexibilidad al
desarrollador
7. Flujo de control
1. El usuario realiza una acción en la interfaz
2. El controlador trata el evento de entrada
Previamente se ha registrado
3. El controlador notifica al modelo la acción del
usuario, lo que puede implicar un cambio del
estado del modelo (si no es una mera consulta)
4. Se genera una nueva vista. La vista toma los
datos del modelo
El modelo no tiene conocimiento directo de la vista
5. La interfaz de usuario espera otra interacción del
usuario, que comenzará otro nuevo ciclo
8.
9. MVC en aplicaciones web
Vista:
la página HTML
Controlador:
código que obtiene datos dinámicamente y
genera el contenido HTML
Modelo:
la información almacenada en una base de
datos o en XML junto con las reglas de negocio
que transforman esa información (teniendo en
cuenta las acciones de los usuarios)
10. Existen multitud de frameworks que usan este
modelo, entre los más destacados están:
Cocoa, escrito en Objetive C (usado en Mac
OS X)
Ruby On Rails, escrito en Ruby.
Struts o Spring, escritos en Java.
Catalyst, escrito en Perl.
Symfony o Zend, escritos en PHP.
Django o Pylons, escritos en Python.