7 de julio de 2013

Modelo Vista Controlador

MVC es un patrón de arquitectura de software cuyo principal propósito es establecer una separación clara entre la interfaz de usuario que presenta la aplicación y la lógica de negocio que maneja  la aplicación.
Se trata de un patrón antiguo, que se remonta a finales de los años 70, creado para Smalltalk por Trygve Reenskaug. Su objetivo era mostrarle al usuario lo que hay dentro de su aplicación de una forma más agradable e intuitiva, para que pudiera manejar la información que necesita en su trabajo.
·         Los elementos del patrón son los siguientes:
   
a)    El modelo:
Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.
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.
Es la representación de la información en el sistema. Trabaja junto a la vista para mostrar la información al usuario y es accedido por el controlador para añadir, eliminar, consultar o actualizar datos.
b)    El controlador:
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.
El controlador es el thread de tratamiento de eventos, que captura y propaga los eventos a la vista y al modelo
En él se implementan las clases de tratamiento de los eventos (a veces como clases anónimas) que implementan interfaces de tipo EventListener (ActionListener, MouseListener, WindowListener, etc.)
c)    Las vistas:
Esta presenta al modelo en un formato adecuado para que el usuario pueda interactuar con él. Se encarga de recibir datos del modelo y los muestra al usuario.
Tienen un registro de su controlador asociado (normalmente porque además lo instancia).
Una vista es un conjunto de objetos de clases que heredan de java.awt.Component

·    Las ventajas que proporciona el utilizar este modelo son diversas y entre ellas se encuentran:

-       Es posible tener diferentes vistas para un mismo modelo
-       Es posible construir nuevas vistas sin necesidad de modificar el modelo existente.
-       La implementación se realiza de forma modular.
-       Clara separación entre interfaz, lógica de negocio y de presentación.
-       Sus vistas muestran información actualizada siempre.
-       Las modificaciones a las vistas no afectan al modelo
-       Facilidad para la realización de pruebas unitarias de los componentes.
-       Reutilización de los componentes.
-       Simplicidad en el mantenimiento de los sistemas.
-       Facilidad para desarrollar prototipos rápidos.
-       Los desarrollos suelen ser más escalables.

·       De igual manera a pesar de las ventajas que el modelo ofrece, su uso también implica ciertas desventajas como:

-       Está sujeto a una estructura predefinida, lo que a veces puede incrementar la complejidad del sistema.
-         Hay problemas que son más difíciles de resolver respetando el patrón MVC
-   Para desarrollar una aplicación bajo el patrón de diseño MVC es necesario una mayor dedicación en los tiempos iniciales del desarrollo (desarrollar un mayor número de clases).
-        MVC requiere la existencia de una arquitectura inicial sobre la que se deben construir clases e interfaces para modificar y comunicar los módulos de una aplicación.
-        MVC es un patrón de diseño orientado a objetos por lo que su implementación es sumamente costosa y difícil en lenguajes que no siguen este paradigma.

·         Estructura del modelo vista controlador
El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace)
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.
El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario.
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 (por ejemplo, produce un listado del contenido del carro de la compra
La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.






·         Diagrama de secuencia del patrón MVC








No hay comentarios:

Publicar un comentario