MVC

El MVC fue diseñado para reducir el esfuerzo de  programación  necesario  en  la  implementación  de  sistemas múltiples  y sincronizados de los mismos datos. Sus características principales están dadas por el hecho de  que,  el  Modelo,  las  Vistas  y  los  Controladores  se  tratan  como entidades  separadas;  esto  hace  que cualquier  cambio  producido  en  el  Modelo  se  refleje  automáticamente  en  cada  una  de  las  Vistas.  Este modelo de  arquitectura  se  puede  emplear  en  sistemas  de  representación  gráfica  de  datos,  donde  se presentan partes del diseño con diferente escala de aumento, en ventanas separadas.

 Este modelo de arquitectura presenta varias ventajas:

• Separación clara entre los componentes de un programa; lo cual permite su implementación por separado.

• Interfaz de Programación de Aplicaciones  API  (AplicationProgramming  Interface)  muy  bien  definida; cualquiera que use el API, podrá reemplazar el Modelo, la Vista o el Controlador, sin aparente dificultad.

• Conexión entre el Modelo y sus Vistas dinámica; se produce en tiempo de ejecución, no en tiempo de compilación.

Al  incorporar  el  modelo  de  arquitectura  MVC  a  un  diseño,  las  piezas  de  un  programa  se  pueden construir   por   separado   y   luego   unirlas   en   tiempo   de   ejecución.   Si   uno   de   los   componentes, posteriormente,  se  observa  que  funciona  mal,  puede  reemplazarse  sin  que  las  otras  piezas  se  vean afectadas.  Este  escenario  contrasta  con  la  aproximación  monolítica  típica  de  muchos  programas  de pequeña  y  mediana  complejidad.  Todos  tienen  un  Frame  que contiene  todos  los  elementos,  un controlador de eventos, un montón de cálculos y la presentación del resultado. Ante esta perspectiva, hacer un cambio aquí no es nada trivial.

Definicion de partes

El  Modelo  Es  el  objeto  que  representa  los  datos  del  programa.  Maneja  los  datos  y  controla  todas  sus transformaciones.  El  Modelo  no  tiene  conocimiento  específico  de los  Controladores  o  de  las  Vistas,  ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando cambia el Modelo.

 La  Vista  es  el  objeto  que  maneja  la  presentación  visual  de  los  datos  representados  por  el  Modelo. Genera una    representación    visual    del    Modelo    y    muestra    los    datos    al    usuario.    Interactúa preferentemente con el Controlador, pero es posible que trate directamente con el Modelo a través de una referencia al propio Modelo.

El  Controlador  es  el  objeto  que  proporciona  significado  a  las  órdenes  del  usuario,  actuando  sobre  los datos  representados  por  el  Modelo,  centra  toda  la  interacción  entre  la  Vista  y  el  Modelo.  Cuando  se realiza  algún  cambio,  entra  en  acción,  bien  sea  por  cambios  en  la  información  del  Modelo  o  por alteraciones de la Vista. Interactúa con el Modelo a través de una referencia al propio Modelo.

Un modelo puede tener diversas vistas, cada una con su correspondiente controlador, aunque es posible definir  múltiples  vistas  para  un  único  controlador.  Un  ejemplo  clásico  es  el  de  la  información  de  una base de datos, que se puede presentar de diversas formas: diagrama de tarta, de barras, tabular, etc.

A continuación se detalla cada elemento:

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  reglas  de  negocio  (la  funcionalidad  del  sistema).  Un  ejemplo  de  regla  puede  ser:  "Si  la mercancía  pedida  no  está  en  el  almacén,  consultar  el  tiempo  de  entrega  estándar  del  proveedor".  Es opcional,  pues  las  reglas  de  negocio,  pueden  estar  también  en los  controladores,  directamente  en  las acciones.

• Notificará a las vistas los cambios que en los datos pueda producir un agente externo si se está ante un modelo activo (por ejemplo, un fichero bath que actualiza los datos, un temporizador que desencadenauna inserción, etc.)

El controlador es responsable de:

 • Recibir los eventos de entrada (un clic, un cambio en un campo de texto, etc.).

• Contiene reglas de gestión de eventos, del tipo "Si Evento Z, entonces Acción W". Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada  al  método  "Actualizar  ()".  Una  petición  al  modelo  puede  ser  "Obtener_tiempo_de_  entrega (nueva_orden_de_venta)".

Las vistas son responsables de:

 • Recibir datos procesados por el controlador o del modelo y mostrarlos al usuario.

• Tienen un registro de su controlador asociado.

• Pueden dar el servicio de "Actualización ()", 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. Un ejemplo de MVC con un modelo pasivo (aquel que no notifica cambios en los datos) es la navegación web,  que  responde  a  las  entradas  del  usuario,  pero  no  detecta  los  cambios  en  datos  del  servidor.

Tomado de:

https://revistatelematica.cujae.edu.cu/index.php/tele/article/view/15/10

mas informacion sobre MVC :

MVC_con todos los procesos.ppt (326144)

tomado de: https://sistemasremington.webnode.com/desarrollo-web-i/mvc/