Está en la página 1de 4

Modelo Vista Controlador

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.

Un diagrama sencillo que muestra la relacin entre el modelo, la vista y el controlador. Nota: las lneas slidas indican una asociacin directa, y las punteadas una indirecta (por ejemplo, patrn Observer). Historia El estilo fue descrito por primera vez en 19791 por Trygve Reenskaug, entonces trabajando en Smalltalk en laboratorios de investigacin de Xerox. La implementacin original est descrita en Programacin de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo Vista Controlador.2 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.

PATRON DE DISEO MVC (Modelo Vista Controlador) Qu es un patrn de diseo?


Un patrn de diseo describe un problema que ocurre frecuentemente en el campo de la construccin de software y su respectiva solucin; puede ser empleado muchas veces, en diferentes contextos, sin tener que duplicar el diseo. Se trata de un elemento de diseo que puede ser reutilizado. Un patrn de diseo tiene cuatro elementos esenciales: * El Nombre del Patrn: Es aquel que podemos utilizar para describir el problema de diseo, sus soluciones y consecuencias en una o dos palabras. * El Problema: Describe cundo aplicar el patrn. Especifica el problema y su contexto. Debe describir los problemas de diseo especficos as como su representacin conceptual como objetos. En ocasiones, el problema debe incluir una lista de condiciones que se deben conocer antes de aplicarse el patrn. * La Solucin: Describe los elementos que construyen el diseo, sus responsabilidades y colaboraciones. La solucin no describe un problema de diseo en particular, porque un patrn es una especie de plantilla que puede ser aplicada en diferentes situaciones. * Consecuencias: Son los resultados de aplicar el patrn. Qu es el patrn vista modelo controlador (MVC)? MVC es un patrn de diseo que fue inicialmente utilizado para construir interfaces de usuario en Smalltalk80. MVC consiste de tres tipos de objetos. El Modelo, que son los objetos de la aplicacin, tambin conocida como lgica de negocio, o lgica de aplicacin. La Vista especifica la visualizacin de los datos, algunas veces conocida como lgica de presentacin. El controlador es el coordinador entre estos dos ltimos, es decir, define la forma en que la interfaz de usuario reacciona ante la entrada de usuario. MVC desacopla el concepto de interfaz de usuario y lgica de negocio para aumentar la flexibilidad y modularidad del software, posiblemente permitiendo que el cdigo pueda ser reutilizado. Finalmente, la idea es lograr separar responsabilidades entre las personas que trabajan para un proyecto de desarrollo de software; es decir, descomponer el Facultad de Ingeniera Electrnica y Telecomunicaciones Programa de Ingeniera Electrnica y Telecomunicaciones Ing. Jose Luis Jurado Informtica III problema en mdulos funcionales, (entre ellos el diseo grfico), lo que se traduce en enfocar de una forma reduccionista la solucin de un proyecto software. Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de control generalmente es el siguien te: 1. El usuario interacta con la interfaz de alguna manera (ej. presionando un botn, un enlace). 2. El controlador recibe (por parte de los objetos de la interfaz vista) la notificacin de la accin solicitada por el usuario 3. El controlador accede al model o, posiblemente actualizando los datos

enviados por el usuario. 4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. 5. La vista usa el modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo. Facultad de Ingeniera Electrnica y Telecomunicaciones Programa de Ingeniera Electrnica y Telecomunicaciones Ing. Jose Luis Jurado Informtica III 6. En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador enve los da tos del modelo a la vista. Esta segunda es la que utilizaremos en este curso. 7. La interfaz espera por nuevas interacciones de usuario para iniciar nuevamente el ciclo.

También podría gustarte