Modelo Vista Controlador Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos de una
aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos. El patrn MVC 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 patrn fue descrito por primera vez en 1979[1] por Trygve Reenskaug, entonces trabajando en Smalltalk en laboratorios de investigacin de Xerox. La implementacin original est descrita a fondo en Programacin de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo Vista Controlador.[2 http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
Elementos del patrn:
Modelo: datos y reglas de negocio Vista: muestra la informacin del modelo al usuario Controlador: gestiona las entradas del usuario
Un modelo puede tener diversas vistas, cada una con su correspondiente controlador. Un ejemplo clsico es el de la informacin de una base de datos, que se puede presentar de diversas formas: diagrama de tarta, de barras, tabular, etc. Veamos cada componente:
1. El modelo es el responsable de:
Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea independiente del sistema de almacenamiento. Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede ser: "Si la mercanca pedida no est en el almacn, consultar el tiempo de entrega estndar del proveedor". Lleva un registro de las vistas y controladores del sistema. Si estamos ante un modelo activo, notificar a las vistas los cambios que en los datos pueda producir un agente externo (por ejemplo, un fichero bath que actualiza los datos, un temporizador que desencadena una insercin, etc).
2. El controlador es responsable de:
Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.). Contiene reglas de gestin de eventos, del tipo "SI Evento Z, entonces Accin W". Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al mtodo "Actualizar()". Una peticin al modelo puede ser "Obtener_tiempo_de_entrega( nueva_orden_de_venta )".
3. Las vistas son responsables de:
Recibir datos del modelo y los muestra al usuario . Tienen un registro de su controlador asociado (normalmente porque adems lo instancia). Pueden dar el servicio de "Actualizacin()", para que sea invocado por el controlador o por el modelo (cuando es un modelo activo que informa de los cambios en los datos producidos por otros agentes).
http://www.proactiva-calidad.com/java/patrones/mvc.html
Ventajas
Desarrollar una aplicacin siguiendo este patrn de diseo tiene muchas ventajas:
La aplicacin est implementada modularmente. Sus vistas muestran informacin actualizada siempre. El programador no debe preocuparse de solicitar que las vistas se actualicen, ya que este proceso es realizado automticamente por el modelo de la aplicacin. Las modificaciones a las vistas no afectan en absoluto a los otros mdulos de la aplicacin.
Desventajas
El tiempo de desarrollo de una aplicacin que implementa el patrn de diseo MVC es mayor, al menos en la primera etapa, que el tiempo de desarrollo de una aplicacin que no lo implementa, ya que MVC requiere que el programador implemente una mayor cantidad de clases que en un entorno de desarrollo
comn no son necesarias. Sin embargo, esta desventaja es muy relativa ya que posteriormente, en la etapa de mantenimiento de la aplicacin, una aplicacin MVC es muchsimo ms mantenible, extensible y modificable que una aplicacin que no lo implementa.
MVC es un patrn de diseo orientado a objetos por lo que su implementacin es sumamente costosa y difcil en lenguajes que no siguen este paradigma.
http://www.ucbcba.edu.bo/Publicaciones/revistas/actanova/documentos/ v2n4/v2.n4.bascon.pdf