Professional Documents
Culture Documents
INTRODUCCIÓN AL
MODELO – VISTA - CONTROLADOR
Vicente García Díaz
garciavicente@uniovi.es
Capa de presentación
Capa de negocio y de
acceso a datos
Controlador
Controlador
Controlador
Interfaz para que el Controlador pueda observar
Es un enumerado que indica al
Controlador qué ha cambiado del modelo
Modelo
Sólo hay que instanciar al Controlador. …aunque podría ser mucho más
Él es el que lo gestiona todo! O lo que sofisticado. Por ejemplo, podrían
es lo mismo, el Controlador puede verse incluirse parámetros de configuración
como el punto de entrada al programa o una instancia del Model0 que se
utilizará
El modelo
IObservable.java
7
addObserver sirve para que el Modelo notifyObserver sirve para que el Modelo
pueda tener internamente diferentes notifique a todos los elementos que lo
“observadores”. Es decir, el Modelo es un están observando (todos los que han sido
IObservable, y al Modelo lo observan pasados a addObserver previamente) que
elementos que hayan implementado la algo ha cambiado en el sistema (e.g. un
interfaz IObserver. usuario se logea, ocurre un fallo, etc…)
Así, cualquier objeto que haya implementa En este caso, se utiliza un enumerado
la interfaz IObserver puede ser el UpdateInfo con diferentes valores en
parámetro que se le pasa al método función de qué ha ocurrido
El modelo
Model.java (1/2)
8
Típico constructor
Se añaden observadores
Se delega al Controlador
la responsabilidad de
invocar el método
oportuno en el Modelo
ante los diferentes
eventos de usuario que
pueden existir al accionar
los botones de la interfaz.
La Vista no sabe qué
sucede cuando un
usuario invoca un evento,
sólo sabe que lo ha
invocado
O lo que es lo mismo, el Modelo avisa a todos los que lo observan de sus cambios
internos más significativos (podrían ser otros cambios en lugar de los 3 del
ejemplo)
El controlador El Controlador es el único que
Controller.java (1/2) conoce a la Vista y al Modelo
14
Esto permite una total
independencia entre Vista y
Modelo. Sin embargo, el
Controlador suele ser un
componente bastante sencillo (es
Muy importante!! únicamente un mediador entre
Vista y Modelo). Así, realizar
cambios en el comportamiento de
una Vista con un Modelo es
relativamente sencillo. Además,
no habría que tocar ni la Vista, ni
el Modelo, componentes más
complejos con el Controlador