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