Está en la página 1de 5

Universidad Tecnolgica del Valle del Mezquital

Tecnologas de la Informacin y Comunicacin

DESARROLLO DE APLICACIONES

II

Profesor:
Eder Santiago Daniel Alumno: Blanca Azucena Pea Palma Grupo:

4 C

El Patrn MVC (Modelo Vista Controlador)


El Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos (Modelo, Vista y Controlador). El Patrn MVC se ve frecuentemente en aplicaciones Web, donde la Vista es la pgina HTML y el cdigo que provee de datos dinmicos a la pgina; el Modelo es el Sistema de Gestin de Base de Datos y la Lgica de negocio; el Controlador es el responsable de recibir los eventos de entrada desde la Vista. Un modelo puede tener diversas vistas, cada una con su correspondiente controlador. Un ejemplo clsico es el de la informacin de una base de datos, que se puede presentar de diversas formas: diagrama de tarta, de barras, tabular, etc. Veamos cada componente. Modelo: Es la representacin de la informacin en el sistema. Trabaja junto a la vista para mostrar la informacin al usuario y es accedido por el controlador para aadir, eliminar, consultar o actualizar datos. Vista: Es la presenta al modelo en un formato adecuado para que el usuario pueda interactuar con l, casi siempre es la interfaz de usuario. Controlador: Es el elemento ms abstracto. Recibe, trata y responde los eventos enviados por el usuario o por la propia aplicacin. Interacta tanto con el modelo como con la vista.

Modelo
Es la representacin especfica de la informacin con la cual el sistema opera. La lgica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un nmero de unidades negativo, o calculando los totales e impuestos del carrito de compra. Esto quiere decir que aqu se operan los datos y las reglas de negocio asociadas al sistema, incluyendo el anlisis sintctico y el procesamiento de los datos de entrada y de los datos de salida. El Modelo es el responsable de:

Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea independiente del sistema de almacenamiento.

Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede ser: Si la mercanca pedida no est en el almacn, consultar el tiempo de entrega estndar del proveedor. Lleva un registro de las vistas y controladores del sistema. Si estamos ante un modelo activo, notificar a las vistas los cambios que en los datos pueda producir un agente externo (por ejemplo, un fichero batch que actualiza los datos, un temporizador que desencadena una insercin, etc.). Un ejemplo de MVC con un modelo pasivo (aquel que no notifica cambios en los datos) es la navegacin web, que responde a las entradas del usuario, pero no detecta los cambios en datos del servidor.

Vista
Este presenta el Modelo, usualmente la interfaz de usuario. La vista es la capa de la aplicacin que ve el usuario en un formato adecuado para interactuar, en otras palabras, es nuestra interface grafica. Las vistas son responsables de:

Recibir datos del modelo y la muestra al usuario. Tienen un registro de su controlador asociado (normalmente porque adems lo instancia). Pueden dar el servicio de Actualizacin (), para que sea invocado por el controlador o por el modelo (cuando es un modelo activo que informa de los cambios en los datos producidos por otros agentes).

Controlador
El Controlador es la capa que controla todo lo que puede realizar nuestra aplicacin. Responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. Est compuesto por acciones que se representan con funciones en una clase. Por ejemplo, yo tengo mi controlador llamado Clientes, y este controlador puede realizar las acciones Crear,Editar,Listar entre otras. El controlador es responsable de:

Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.). Contiene reglas de gestin de eventos, del tipo SI Evento Z, entonces Accin W. Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al mtodo Actualizar (). Una peticin al modelo puede ser Obtener_tiempo_de_entrega (nueva_orden_de_venta).

El diagrama de secuencia

Pasos:
1. El usuario introduce el evento. 2. El Controlador recibe el evento y lo traduce en una peticin al Modelo (aunque tambin puede llamar directamente a la vista). 3. El modelo (si es necesario) llama a la vista para su actualizacin. 4. Para cumplir con la actualizacin la Vista puede solicitar datos al Modelo. 5. El Controlador recibe el control.

Ventajas y Desventajas
La popularidad de este diseo se debe mas que todo a que es mucho mas fcil organizar aplicaciones grandes.

Las ventajas

Clara separacin entre interfaz, lgica de negocio y de presentacin, que adems provoca parte de las ventajas siguientes. Sencillez para crear distintas representaciones de los mismos datos. Facilidad para la realizacin de pruebas unitarias de los componentes, as como de aplicar desarrollo guiado por pruebas (TDD). Reutilizacin de los componentes. Simplicidad en el mantenimiento de los sistemas. Facilidad para desarrollar prototipos rpidos. Los desarrollos suelen ser ms escalables. La aplicacin es mas fcil de modificar en el futuro Facilita la labor de todo el equipo: diseadores grficos, programadores, diseadores de base de datos.

Las desventajas:

Tener que ceirse a una estructura predefinida, lo que a veces puede incrementar la complejidad del sistema. Hay problemas que son ms difciles de resolver respetando el patrn MVC. La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de modelos ms simples como Webforms. La distribucin de componentes obliga a crear y mantener un mayor nmero de ficheros. Es necesario invertir tiempo en crear un modelo

Implementacin
El usuario interacta con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botn, enlace, etc.) El controlador recibe (por parte de los objetos de la interfaz-vista) la notificacin de la accin solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a travs de un gestor de eventos (handler) o callback. El controlador accede al modelo, actualizndolo, posiblemente modificndolo de forma adecuada a la accin solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos estn a menudo estructurados usando un patrn de comando que encapsula las acciones y simplifica su extensin. 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 donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podra utilizar el patrn Observador para proveer cierta indireccin entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun as el modelo en s mismo sigue sin saber nada de la vista. Este uso del patrn Observador no es posible en las aplicaciones Web puesto que las clases de la vista estn 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. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador enve los datos del modelo a la vista. Por ejemplo en el MVC usado por Apple en su framework Cocoa. Suele citarse como Modelo-Interface-Control, una variacin del MVC ms puro La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.