jueves, 27 de marzo de 2014

Que es MVC - Modelo Vista Controlador

Modelo Vista Controlador


Es un patron en el cual se separan los componentes de una aplicación en tres capas, la capa de datos, la capa de interfaz y la capa logica
La idea básica detrás de esto es separar el código, de tal manera que si necesitamos hacer un cambio en la base de datos, esto no afecte a la lógica del programa, ahora la función del controlador es solo ese controlar la interacción entre ambas capas.
Detalle del patron : 
  • El Modelo ( Se encarga de interactuar con la Base de Datos), se encarga de todo lo que tiene que ver con la persistencia de datos. Guarda y recupera la información del medio persistente que utilicemos, ya sea una base de datos, archivos de texto, XML. etc
  • La Vista ( Es el codigo HTML que se muestra al usuario ), presenta la información obtenida con el modelo de manera que el usuario la pueda visualizar.
  • El Controlador, dependiendo de la acción solicitada por el usuario  , es el que pide al modelo la información necesario e invoca a la platilla ( Vista) que corresponda para que la información sea presentada.
La siguiente imagen muestra como interactua el patrón MVC con el usuario. Veamos paso a paso cómo sería el flujo de trabajo característico en un esquema MVC.

  • El usuario realiza una solicitud a nuestro sitio web. Generalmente estará desencadenada por acceder a una página de nuestro sitio. Esa solicitud le llega al controlador.

  • El controlador comunica tanto con modelos como con vistas. A los modelos les solicita datos o les manda realizar actualizaciones de los datos. A las vistas les solicita la salida correspondiente, una vez se hayan realizado las operaciones pertinentes según la lógica del negocio.

  • Para producir la salida, en ocasiones las vistas pueden solicitar más información a los modelos. En ocasiones, el controlador será el responsable de solicitar todos los datos a los modelos y de enviarlos a las vistas, haciendo de puente entre unos y otros. Sería corriente tanto una cosa como la otra, todo depende de nuestra implementación; por eso esa flecha la hemos coloreado de otro color.

  • Las vistas envían al usuario la salida. Aunque en ocasiones esa salida puede ir de vuelta al controlador y sería éste el que hace el envío al cliente, por eso he puesto la flecha en otro color.