You are on page 1of 3

Modelo Vista Controlador (MVC)

El 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 control en tres componentes distintos: 1. El modelo: contiene una representacin de los datos que maneja el sistema, su lgica de negocio, y sus mecanismos de persistencia. Deber ser independiente de la entrada o salida de datos. 2. La vista: se encarga de desplegar la informacin al usuario de la aplicacin por medio de una interfaz grafica, y obtener los datos del modelo. Es la nica parte de la aplicacin que interacta con el usuario. Un modelo puede tener ms de una vista asociada, que pueden mostrar varias representaciones del modelo en la pantalla. Por ejemplo: una vista para el cliente, una vista del operador, y una vista para el administrador del sistema. Cada vista tiene asociado un controlador que recibe la entrada de los datos y los pasa al modelo para obtener un resultado. Cada vez que el modelo devuelve algn resultado a la vista, sta se debe actualizar para desplegar la nueva informacin en la pantalla. 3. El controlador: recibe las entradas, usualmente como eventos que codifican los movimientos o pulsacin de botones del ratn, pulsaciones de teclas, etc. Los eventos son traducidos a solicitudes de servicio para el modelo o la vista. Es como un intermediario entre el modelo y la vista, gestionando el flujo de informacin entre ellos y las transformaciones para adaptar los datos a las necesidades de cada uno.

Ventajas e inconvenientes
Algunas de las ventajas de usar el MVC son las siguientes: - Claridad en el diseo: facilita el entendimiento del modelo, facilita la implementacin y mantenimiento de la aplicacin. - Modularidad: permite que los componentes de las aplicaciones sean flexibles, permitiendo agregar o quitar stos sin afectar en gran medida a la aplicacin. El desarrollo de los distintos componentes se puede realizar en paralelo, una vez que la interfaz entre los componentes est claramente definida. - Vistas mltiples: permite mostrar el estado en que se encuentra el modelo de diferentes maneras. - Los sistemas son muy eficientes, y fcilmente escalables. - Se pueden distribuir fcilmente aplicaciones cliente/servidor en donde, la parte de la vista se ubica en un cliente, mientras que la parte del controlador y el modelo se encuentra ubicado en un servidor.

Tambin puede tener algunos inconvenientes como: - Tener que ceirse a una estructura predefinida, lo que a veces puede incrementar la complejidad del proyecto. De hecho, hay problemas que son ms difciles de resolver, o al menos cuestan algo ms de trabajo, respetando el patrn MVC. - Al principio puede requerir cierto esfuerzo adaptarse a esta filosofa. - La distribucin de componentes obliga a crear y mantener un mayor nmero de ficheros.

Flujo de control de MVC


1. El usuario interacta con la interfaz de alguna manera (presionando un botn, un enlace, etc). 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 modelo, 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. 6. En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador enve los datos del modelo a la vista. 7. La interfaz espera por nuevas interacciones de usuario para iniciar nuevamente el ciclo.

Tecnologas MVC (Frameworks)


Algunos de los frameworks MVC ms utilizados y el lenguaje que usan:
Spring Java Struts Java Java Server Faces (JSF) Java Ruby on Rails Ruby Cocoa Objective C CakePHP PHP ASP.NET - .NET

Lista de Frameworks MVC

You might also like