You are on page 1of 4

Investigacin: MVC

Materia: Desarrollo de Aplicaciones II


Profesor: Eder Santiago Daniel Grado: 4 Grupo: C Daniel B.O. 10/09/2012

Los patrones de diseo: MVC


El Modelo Vista Controlador (MVC) es un patrn de arquitectura software, el cual divide la interfaz de usuario y la lgica de negocio en tres componentes distintos. Este patrn se utiliza frecuentemente en aplicaciones web donde la vista es la pgina HTML y el cdigo que provee de datos dinmicos a la pgina. El modelo estara compuesto por el Sistema de Gestin de Base de Datos y la lgica de negocio. Y el controlador es el que se encarga de recibir y procesar los eventos de entrada desde la vista. Entrando un poco ms en detalle podemos definir cada uno de los componentes de la siguiente manera:

Modelo: Es la representacin especfica de la informacin con la que se trabaja en el sistema. Es decir, el modelo se limita a la vista y su controlador facilitando las presentaciones visuales complejas. Tambin es posible que el modelo opere con ms datos no relativos a la presentacin, integrando de este modo el uso de otras lgicas de negocio y datos afines al sistema modelado. Vista: Es la presentacin del modelo en un formato adecuado para la interaccin con el mismo, tpicamente una interfaz de usuario. Controlador: Responde a eventos, normalmente acciones realizadas por el usuario y realiza peticiones al modelo y a la vista.

La inmensa mayora de los sistemas informticos utilizan un Sistema de Gestin de Base de Datos para gestionar los datos, este sistema de gestin formara parte del modelo en el MVC. La unin entre capa de presentacin y capa de negocio conocido en el paradigma de la Programacin por capas representara la integracin entre Vista y su correspondiente Controlador de eventos y acceso a datos, MVC no tiende a discriminar entre capa de presentacin y capa de negocio, pero si pretende separar la capa de visualizacin grfica de su correspondiente programacin y acceso a datos, algo que mejora el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos cumplen ciclos de vida muy distintos entre s.

Implementacin:
Se pueden encontrar diversas implementaciones del MVC, pero el flujo que sigue el control normalmente es el siguiente: 1. El usuario interacta con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botn, enlace, etc.) 2. 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. 3. 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. 4. 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. 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. 5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

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.

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.

You might also like