Está en la página 1de 3

05/05/2014

Introducción

 Es un patrón de arquitectura de software que separa los

Modelo Vista
datos y la lógica de negocio, de una aplicación, de la
interfaz de usuario y el módulo encargado de gestionar los
eventos y las comunicaciones.

Controlador (MVC)
PROGRAMACIÓN AVANZADA
ING. MARÍA YORNET CUBA DEL CASTILLO
2014 - I

HISTORIA HISTORIA

 El patrón MVC fue una de las primeras ideas en el campo de las  Algunos aspectos del patrón MVC han evolucionado dando lugar
interfaces gráficas de usuario y uno de los primeros trabajos en
describir e implementar aplicaciones software en términos de sus a ciertas variantes del concepto original, ya que "'las partes del
diferentes funciones. MVC clásico realmente no tienen sentido para los clientes actuales"
 MVC fue introducido por Trygve Reenskaug en Smalltalk-76 durante
su visita a Xerox Parc en los años 70.
 En los años 80, Jim Althoff y otros implementaron una versión de
MVC para la biblioteca de clases de Smalltalk-80
 En 1988, MVC se expresó como un concepto general en un artículo
sobre Smalltalk-80.

DESCRIPCION DESCRIPCION
 El Modelo: Es la representación de la
información con la cual el sistema opera,
por lo tanto gestiona todos los accesos a
dicha información, tanto consultas como
actualizaciones, implementando también
los privilegios de acceso que se hayan
descrito en las especificaciones de la
aplicación (lógica de negocio).
 Envía a la 'vista' aquella parte de la
información que en cada momento se le
solicita para que sea mostrada (a un
usuario).
 Las peticiones de acceso o manipulación
de información llegan al 'modelo' a través
del 'controlador'.

1
05/05/2014

DESCRIPCION DESCRIPCION
 El Controlador: Responde a eventos  La Vista: Presenta el 'modelo' (información y
(acciones del usuario) e invoca peticiones
al 'modelo' cuando se hace alguna solicitud lógica de negocio) en un formato
sobre la información (por ejemplo, editar un adecuado para interactuar (interfaz de
documento o un registro en una base de
datos). usuario) por tanto requiere de dicho
 Puede enviar comandos a su 'vista' 'modelo‘, de la información que debe
asociada si se solicita un cambio en la presentar como salida.
forma en que se presenta de 'modelo' (por
ejemplo, desplazamiento o scroll por un
documento o por los diferentes registros de
una base de datos), por tanto se podría
decir que el 'controlador' hace de
intermediario entre la 'vista' y el 'modelo‘.

DESCRIPCION INTERACCIONDE LOS


COMPONENTES
 El modelo contiene los datos y la funcionalidad de la aplicación  El usuario interactúa con la interfaz de usuario de
 Juego ajedrez: estado del tablero, reglas del ajedrez, etc.
alguna forma (por ejemplo, el usuario pulsa un
 La vista que gestiona como se muestran esos datos
botón, enlace, etc.)
 Juego ajedrez: ventana que dibuja el tablero, oyentes de eventos, etc.
 El controlador que determina que modificaciones hay que hacer  El controlador recibe (por parte de los objetos de la
en el modelo cuando se interacciona con la vista. También puede interfaz-vista) la notificación de la acción solicitada
contener algoritmos
por el usuario. El controlador gestiona el evento que
 Juego ajedrez: control de eventos, algoritmo para pensar las jugadas,
etc. llega, frecuentemente a través de un gestor de
eventos.

INTERACCIONDE LOS INTERACCIONDE LOS


COMPONENTES COMPONENTES
 El controlador delega a los objetos de la vista la tarea de
 El controlador accede al modelo, actualizándolo, desplegar la interfaz de usuario.
posiblemente modificándolo de forma adecuada a  La vista obtiene sus datos del modelo para generar la
la acción solicitada por el usuario (por ejemplo, el interfaz apropiada para el usuario donde se reflejan los
cambios en el modelo (por ejemplo, produce un listado
controlador actualiza el carro de la compra del
del contenido del carro de la compra).
usuario).
 El modelo no debe tener conocimiento directo sobre la
vista. Sin embargo, se podría utilizar el patrón Observador
para proveer cierta indirección entre el modelo y la vista,
permitiendo al modelo notificar a los interesados de
cualquier cambio.

2
05/05/2014

INTERACCIONDE LOS INTERACCIONDE LOS


COMPONENTES COMPONENTES
 Un objeto vista puede registrarse con el modelo y esperar a los  La interfaz de usuario espera nuevas interacciones del usuario,
cambios, pero aun así el modelo en sí mismo sigue sin saber nada de comenzando el ciclo nuevamente....
la vista.

 El uso del patrón Observador no es posible en las aplicaciones Web


puesto que las clases de la vista están desconectadas del modelo y
del controlador. En general el controlador no pasa objetos de dominio
(el modelo) a la vista aunque puede dar la orden a la vista para que
se actualice.

MVC Y BASES DE DATOS USO EN APLICACIONES WEB


 Aunque originalmente MVC fue desarrollado para aplicaciones de
 Muchos sistemas utilizan un Sistema de Gestión de Base de Datos
para gestionar los datos que debe utilizar la aplicación. escritorio, ha sido ampliamente adaptado como arquitectura para
 En el MVC dicha gestión corresponde al modelo. diseñar e implementar aplicaciones web en los principales
 La unión entre capa de presentación y capa de negocio, lenguajes de programación.
conocido en el paradigma de la Programación por capas,
representaría la integración entre la Vista y su correspondiente  Se han desarrollado multitud de frameworks, comerciales y no
Controlador de eventos y acceso a datos
comerciales, que implementan este patrón; estos frameworks se
 MVC no pretende discriminar entre capa de negocio y capa de
presentación pero si pretende separar la capa visual gráfica de su diferencian básicamente en la interpretación de como las
correspondiente programación y acceso a datos, algo que mejora
el desarrollo y mantenimiento de la Vista y el Controlador en funciones MVC se dividen entre cliente y servidor .
paralelo, ya que ambos cumplen ciclos de vida muy distintos entre
sí.

USO EN APLICACIONES WEB


 Los primeros frameworks MVC para desarrollo web planteaban un
enfoque de cliente ligero en el que casi todas las funciones, tanto
de la vista, el modelo y el controlador recaían en el servidor. En este
enfoque, el cliente manda la petición de cualquier hiperenlace o
formulario al controlador y después recibe de la vista una página
completa y actualizada (u otro documento); tanto el modelo
como el controlador (y buena parte de la vista) están
completamente alojados en el servidor.
 Como las tecnologías web han madurado, ahora existen
frameworks como JavaScriptMVC, Backbone o jQuery que
permiten que ciertos componentes MVC se ejecuten parcial o
totalmente en el cliente.

También podría gustarte