You are on page 1of 5

2012

Desarrollo de Aplicaciones II
Modelo Vista Controlador
Alumno: ngel Guerrero Torres

Modelo Vista Controlador (MVC) Modelo Vista Controlador (MVC) es un patrn o modelo de abstraccin de desarrollo de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de negocio en tres componentes distintos. El patrn de llamada y retorno MVC (segn CMU), 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, y el controlador es el responsable de recibir los eventos de entrada desde la vista. Descripcin del patrn Modelo: Esta es la representacin especfica de la informacin con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema tambin puede operar con ms datos no relativos a la presentacin, haciendo uso integrado de otras lgicas de negocio y de datos afines con el sistema modelado. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario. Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.

Muchos de los sistemas informticos utilizan un Sistema de Gestin de Base de Datos para gestionar los datos: en lneas generales del MVC corresponde al modelo. 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 pretende discriminar entre capa de negocio y capa de presentacin pero si pretende separar la capa visual 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. Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente 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. 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 5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente....

MVC: Modulo-Vista-Controlador Es un patrn de arquitectura de las aplicaciones software Separa la lgica de negocio de la interfaz de usuario o o Facilita la evolucin por separado de ambos aspectos Incremental reutilization y flexibilidad

Flujo de control 1. El usuario realiza una accin en la interfaz 2. El controlador trata el evento de entrada Previamente se ha registrado 3. El controlador notifica al modelo la accin 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 interaccin del usuario, que comenzar otro nuevo ciclo MVC en aplicaciones web Vista: La pgina HTML Controlador: Cdigo que obtiene datos dinmicamente y genera el Contenido HTML

Modelo: La informacin almacenada en una base de datos o en XML Junto con las reglas de negocio que transforman esa informacin (teniendo en cuenta las acciones de los usuarios)

MVC en Java Swing Modelo: El modelo lo realiza el desarrollador Vista: Conjunto de objetos de clases que heredan de java.awt.Component Controlador: El controlador es el thread de tratamiento de eventos, que captura y propaga los eventos a la vista y al modelo. Clases de tratamiento de los eventos (a veces como clases annimas) que implementan interfaces de tipo EventListener (ActionListener, MouseListener, WindowListener, etc.)

Ventajas MVC son obvias: fcil y flexible estructuracin del cdigo, separacin de poderes (datos, implementacin e interfaz) rgida y si el framework est bien hecho, seguridad y ayuda para el programador.

Desventajas Pero tambin me he ido encontrando con problemas que son en realidad estructurales y dependen tambin del framework que se use, como es renovar completamente lo que se entiende por pgina web conceptualmente hablando, acostumbrarse a usar Ajax por un tubo (lo que no es un problema realmente, pero no hay costumbre), hacerse a la idea de montar aplicaciones ricas (en el cliente) y otras consideraciones ms tcnicas que problemas reales, pero que afectan en gran medida al desarrollo como tal.

El Model-View-Controller (Modelo-Vista-Controlador, en adelante MVC) Fue introducido inicialmente en la comunidad de desarrolladores de Smalltalk-80. Segn uno de los Sistemas de Patrones de Arquitectura ms extendido en el mundo: Pattern Oriented Software Architecture, publicado por Buschmann en 1996, el patrn que se analiza en este trabajo (MVC), se sita en la tercera de las cuatro categoras en las cuales clasifica a los patrones: Del barro a la estructura (From mud to Structure), Sistemas Distribuidos (Distributed Systems), Sistemas Interactivos (Interactive Systems) y Sistemas Adaptables (Adaptable Systems). De igual forma si utilizamos otro de los sistemas ms difundidos: Pattern of Enterprise Application Architecture, descrito recientemente por Fowler en el pasado 2003, lo ubica en la tercera de las siete categoras que se mencionan a continuacin:Patrones de lgica del dominio (Domain Logia Patterns), Patrones de Mapeo a Bases de Datos Relacionales (Mapping to Relational Database Patterns), Patrones de Presentacin Web (Web Presentation Patterns), Patrones de Distribucin (Distribution Patterns), Patrones de Concurrencia Offline (Offline Concurrency Patterns), Patrones de Estado de Sesin (Session State Patterns) y Patrones Base (Base Patterns).

You might also like