Mvc

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mvc as PDF for free.

More details

  • Words: 2,364
  • Pages: 9
MODELO VISTA CONTROLADOR INTRODUCCIÓN El mercado del software de computadoras personales ha germinado en las pasadas dos décadas. El procesamiento de texto, la hoja de cálculo, los gráficos por computadoras, multimedia, entretenimientos, gestión de bases de datos, aplicaciones financieras, de negocios y personales y redes o acceso a bases de datos externas son algunas de los cientos de aplicaciones existentes en la actualidad. En el mismo período de tiempo mencionado, han aparecido un conjunto de variantes de solución al diseño y a la arquitectura de las aplicaciones de todo tipo. No obstante la aplicación de dichas variantes a los software educativos se vuelve un poco compleja y en ocasiones no compatibles con las características de este tipo de aplicacione. http://www.monografias.com/trabajos43/patron-modelo-vista/patron-modelo-vista2.shtml ORIGEN EL Modelo Vista Controlador fue descrito por primera vez en 1979 por Trygve Reenskaug, trabajador de Smalltalk en laboratorios de investigación de Xerox. 2.1. El modelo El modelo es un conjunto de clases que representan la informacion del mundo real que el sistema debe procesar, así por ejemplo un sistema de administracion de datos climatol ogicos tendra un modelo que representara la temperatura, la humedad ambiental, el estado del tiempo esperado, etc. sin tomar en cuenta ni la forma en la que esa informacion va a ser mostrada ni los mecanismos que hacen que esos datos esten dentro del modelo, es decir, sin tener relacion con ninguna otra entidad dentro de la aplicacion. 2.1.1. Modelo del dominio Se podria decir que el modelo del dominio (o el modelo propiamente dicho) es el conjunto de clases que un ingeniero de software modela al analizar el problema que desea resolver; así, pertenecer´ýan al modelo del dominio: El cliente, la factura, la temperatura, la hora, etc. El modelo del dominio no deberia tener relacion con nada externo a la informacion que contiene. 2.1.2. Modelo de la aplicacion

El modelo de la aplicacion es un conjunto de clases que se relacionan con el modelo del dominio, que tienen conocimiento de las vistas y que implementan los mecanismos necesarios para notificar a ´estas ´ultimas sobre los cambios que se pudieren dar en el modelo del dominio. El modelo de la aplicacion es llamado tambien coordinador de la aplicacion 2.2. Las vistas Las vistas son el conjunto de clases que se encargan de mostrar al usuario la informacion contenida en el modelo. Una vista esta asociada a un modelo, pudiendo existir varias vistas asociadas al mismo modelo; asi por ejemplo, se puede tener una vista mostrando la hora del sistema como un reloj analogico y otra vista mostrando la misma informacion como un reloj digital. Una vista obtiene del modelo solamente la informaci´on que necesita para desplegar y se actualiza cada vez que el modelo del dominio cambia por medio de notificaciones generadas por el modelo de la 2.3. El controlador El controlador es un objeto que se encarga de dirigir el flujo del control de la aplicación debido a mensajes externos, como datos introducidos por el usuario u opciones del menu seleccionadas por ´el. A partir de estos mensajes, el controlador se encarga de modificar el modelo o de abrir y cerrar vistas. El controlador tiene acceso al modelo y a las vistas, pero las vistas y el modelo no conocen de la existencia del controlador.

2.5. Ventajas Desarrollar una aplicaci´on siguiendo este patron de diseño tiene muchas ventajas: La aplicaci´on esta implementada modularmente. Sus vistas muestran informaci´on actualizada siempre. El programador no debe preocuparse de solicitar que las vistas se actualicen, ya que este proceso es realizado automaticamente por el modelo de la aplicaci ´on. Si se desea hacer una modificacion al modelo del dominio, como aumentar metodos o datos contenidos, solo debe modificarse el modelo y las interfaces del mismo con las vistas, no todo el mecanismo de comunicacion y de actualizacion entre modelos. Las modificaciones a las vistas no afectan en absoluto a los otros modulos de la aplicaci´on. MVC es bastante utilizado en la actualidad en marcos de aplicaci´on orientados a objeto desarrollados para construir aplicaciones de gran tamaño; Java Swing, Apache Struts, Microsoft ASP.NET, las transformaciones XSL o incluso los documentos LATEX siguen este patron de diseño. MVC esta demostrando ser un patron de diseño bien elaborado pues las aplicaciones que lo implementan presentan una extensibilidad y una mantenibilidad ´unicas comparadas con otras aplicaciones basadas en otros patrones.

2.6. Desventajas El tiempo de desarrollo de una aplicaci´on que implementa el patron de diseño MVC es mayor, al menos en la primera etapa, que el tiempo de desarrollo de una aplicaci´on que no lo implementa, ya que MVC requiere que el programador implemente una mayor cantidad de clases que en un entorno de desarrollo comun no son necesarias. Sin embargo, esta desventaja es muy relativa ya que posteriormente, en la etapa de mantenimiento de la aplicaci´on, una aplicaci´on MVC es muchisimo mas mantenible, extensible y modificable que una aplicaci´on que no lo implementa. MVC requiere la existencia de una arquitectura inicial sobre la que se deben construir clases e interfaces para modificar y comunicar los modulos de una aplicaci´on. Esta arquitectura inicial debe incluir, por lo menos: un mecanismo de eventos para poder proporcionar las notificaciones que genera el modelo de aplicaci´on; una clase Modelo, otra clase Vista y una clase Controlador genericas que realicen todas las tareas de comunicacion, notificacion y actualizacion que seran luego transparentes para el desarrollo de la aplicaci´on. MVC es un patron de diseño orientado a objetos por lo que su implementacion es sumamente costosa y dificil en lenguajes que no siguen este paradigma. 498 · Ernesto Bascon: El patron de diseño Modelo-Vista-Controlador (MVC)

aplicaci ´on(http://www.ucbcba.edu.bo/Publicaciones/revistas/actanova/documentos/v2 n4/v2.n4.bascon.pdf) DONDE ES UTILIZADO Para el diseño de aplicaciones con sofisticados interfaces se utiliza el patrón de diseño Modelo-Vista-Controlador. La lógica de un interfaz de usuario cambia con más frecuencia que los almacenes de datos y la lógica de negocio. Si realizamos un diseño ofuscado, es decir, un pastiche que mezcle los componentes de interfaz y de negocio, entonces la consecuencia será que, cuando necesitemos cambiar el interfaz, tendremos que modificar trabajosamente los componentes de negocio. Mayor trabajo y más riesgo de error. Se trata de realizar un diseño que desacople la vista del modelo, con la finalidad de mejorar la reusabilidad. De esta forma las modificaciones en las vistas impactan en menor medida en la lógica de negocio o de datos.

Elementos del patrón: •

Modelo: datos y reglas de negocio



Vista: muestra la información del modelo al usuario



Controlador: gestiona las entradas del usuario

Un modelo puede tener diversas vistas, cada una con su correspondiente 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. Veamos cada componente: 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 mercancía pedida no está en el almacén, consultar el tiempo de entrega estándar 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 inserción, etc).

El controlador es responsable de: ○

Recibe 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 del modelo y los muestra al usuario.



Tienen un registro de su controlador asociado (normalmente porque además lo instancia).



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. El

diagrama

de

secuencia:

Pasos: 1. El usuario introduce el evento. 2. El Controlador recibe el evento y lo traduce en una petición al Modelo (aunque también puede llamar directamente a la vista). 3. El modelo (si es necesario) llama a la vista para su actualización. 4. Para cumplir con la actualización la Vista puede solicitar datos al Modelo. 5. El Controlador recibe el control. http://www.proactiva-calidad.com/java/patrones/mvc.html El patrón de diseño de software Modelo – Vista – Controlador (MVC). La arquitectura del software alude a "la estructura global del software y a las formas en que la estructura proporciona la integridad conceptual de un sistema". En su forma más simple, la arquitectura es la estructura jerárquica de los componentes del programa (módulos), la manera en que los componentes interactúan y la estructura de datos que van a utilizar los componentes. Sin embargo, en un sentido más amplio, los "componentes" se pueden generalizar para presentar los elementos principales del sistema y sus interacciones. [PRE01] "El diseño arquitectónico define la relación entre los elementos estructurales principales del software, los patrones de diseño que se pueden utilizar para lograr los requisitos que se han definido para el sistema, y las restricciones que afectan a la manera en que se pueden aplicar los patrones de diseño arquitectónicos" [SHA96]. Los patrones expresan el esquema fundamental de organización para sistemas de software. Proveen un conjunto de subsistemas predefinidos; especifican sus responsabilidades e incluyen reglas y guías para organizar las relaciones entre ellos; así como ayudan a especificar la estructura fundamental de una aplicación. MVC divide una aplicación interactiva en 3 áreas: procesamiento, salida y entrada. Para esto, utiliza las siguientes abstracciones:



Modelo (Model): Encapsula los datos y las funcionalidades. El modelo es independiente de cualquier representación de salida y/o comportamiento de entrada.



Vista (View): Muestra la información al usuario. Pueden existir múltiples vistas del modelo. Cada vista tiene asociado un componente controlador.



Controlador (Controller): Reciben las entradas, usualmente como eventos que codifican los movimientos o pulsación de botones del ratón, pulsaciones de teclas, etc. Los eventos son traducidos a solicitudes de servicio ("service requests") para el modelo o la vista.

Se han desarrollado a lo largo de los años, desde la presentación de este patrón a la comunidad científica 3 variantes fundamentales, que se presentan brevemente a continuación. Variante I:

Variante en la cual no existe ninguna comunicación entre el Modelo y la Vista y esta última recibe los datos a mostrar a través del Controlador. Variante II:

Variante en la cual se desarrolla una comunicación entre el Modelo y la Vista, donde esta última al mostrar los datos los busca directamente en el Modelo, dada una indicación del Controlador, disminuyendo el conjunto de responsabilidades de este último. Variante III:

Variante en la cual se diversifica las funcionalidades del Modelo teniendo en cuanta las características de las aplicaciones multimedia, donde tienen un gran peso las medias utilizadas en estas.

IMPLEMENTACION DEL MVC Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente: 1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace) 2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback. 3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario. Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión. 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 refleja los cambios en el modelo (si se utiliza la variante 2 descrita anteriormente, de lo contrario lo obtiene a través del Controlador). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrón de observador puede ser utilizado para proveer cierta indirección 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. 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 envíe los datos del modelo a la vista, según lo descrito en la segunda variante. 5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente. BENEFICIOS •

Menor acoplamiento. a. Desacopla las vistas de los modelos. b. Desacopla los modelos de la forma en que se muestran e ingresan los datos.



Mayor cohesión. a. Cada elemento del patrón esta altamente especializado en su tarea (la vista en mostrar datos al usuario, el controlador en las entradas y el modelo en su objetivo de negocio).



Las vistas proveen mayor flexibilidad y agilidad. a. Se puede crear múltiples vistas de un modelo. b. Las vistas pueden anidarse. c. Se puede cambiar el modo en que una vista responde al usuario sin cambiar su representación visual. d. Se puede sincronizar las vistas. e. Las vistas pueden concentrarse en diferentes aspectos del modelo.



Mayor facilidad para el desarrollo de clientes ricos en múltiples dispositivos y canales a. Una vista para cada dispositivo que puede variar según sus capacidades. b. Una vista para la Web y otra para aplicaciones de escritorio.



Más claridad de diseño.



Facilita el mantenimiento.



Mayor escalabilidad.

http://www.monografias.com/trabajos43/patron-modelo-vista/patron-modelo-vista2.shtml

Related Documents

Mvc
November 2019 39
Mvc
April 2020 30
Mvc
May 2020 27
Mvc
November 2019 29
Spring Mvc
June 2020 13