Mvc 3

Páginas: 5 (1239 palabras) Publicado: 21 de septiembre de 2012
Fundamentos de Ingeniería del Software
INTRODUCCIÓN AL

MODELO – VISTA - CONTROLADOR
Vicente García Díaz
garciavicente@uniovi.es

Vicente García Díaz
César Fernández Acebal
Juan Manuel Cueva Lovelle
Escuela de Ingeniería Informática
Universidad de Oviedo
Curso 2010-2011

Esquema básico del MVC
2

Vista

Totalmente independientes.
Ninguno sabe de la existencia
del otroCapa de presentación

Controlador

Modelo

Capa de negocio y de
acceso a datos

El Controlador es el único que sabe
cómo funciona la Vista y el Modelo

¿Cuál es la clave para lograrlo?
3



Los patrones de diseño
 El MVC es un patrón de diseño compuesto
 Patrón de diseño Strategy


El controlador implementa diferentes estrategias

 Patrón de diseño Observer


Elcontrolador, y a veces, la vista observan continuamente al
modelo

 Patrón de diseño Composite


La vista suele implementar dicho patrón internamente para
facilitar el trabajo de mostrar la interfaz

 Otros patrones como Adapter, Command o Facede

también tienen cabida con MVC
Para esta introducción no será necesario
conocer estos patrones…aunque es muy
recomendable, sobre todo elObserver

Ejemplo de empleo del MVC
4



Aplicación Java muy sencilla realizada con Swing

Aquí nos dice en qué
emisora estamos
Retroceso de emisora

Avance de emisora

Cuando se enciende la radio, se puede
cambiar de emisora. Si la radio está apagada,
entonces no se puede hacer nada

Proyecto JAVA
5

Lanzamiento del programa
Controlador

Controlador
Interfaz para que elControlador pueda observar
Es un enumerado que indica al
Controlador qué ha cambiado del modelo

Modelo

Interfaz para que el Modelo pueda ser observado

Modelo
Vista

Vista (creada con Swing)
El Controlador observa al Modelo.
Para ello utilizaremos el patrón de
diseño Observer. Es la clave de MVC!

El lanzamiento del programa
6

Sólo hay que instanciar al Controlador.
Él esel que lo gestiona todo! O lo que
es lo mismo, el Controlador puede verse
como el punto de entrada al programa

…aunque podría ser mucho más
sofisticado. Por ejemplo, podrían
incluirse parámetros de configuración
o una instancia del Model0 que se
utilizará

El modelo
IObservable.java
7

La clase Model implementa esta interfaz  El Modelo puede ser OBSERVADO

addObserver sirve paraque el Modelo
pueda tener internamente diferentes
“observadores”. Es decir, el Modelo es un
IObservable, y al Modelo lo observan
elementos que hayan implementado la
interfaz IObserver.

notifyObserver sirve para que el Modelo
notifique a todos los elementos que lo
están observando (todos los que han sido
pasados a addObserver previamente) que
algo ha cambiado en el sistema (e.g. unusuario se logea, ocurre un fallo, etc…)

Así, cualquier objeto que haya implementa
la interfaz IObserver puede ser el
parámetro que se le pasa al método

En este caso, se utiliza un enumerado
UpdateInfo con diferentes valores en
función de qué ha ocurrido

El modelo
Model.java (1/2)
8

Típico constructor
Se añaden observadores

Sigue en la siguiente diapositiva

Cuando se invocaeste
método, se avisa (notifica) a
todos los observadores de
algún cambio importante en
el Modelo

El modelo
Model.java (2/2)
9

Cuando se enciende la radio, el
Modelo “busca” 8 emisoras de radio
y las guarda en su “memoria”.
Además notifica a los observadores
cuando finaliza su proceso
En este caso, apagar la radio es
directo. Notifica a los
observadores directamente
Cuando seavanza de emisora y se
llega al límite de 8, se vuelve a la
primera. Luego, notifica a sus
observadores
Análogo para cuando se retrocede
de emisora
Aquí, el Modelo devuelve la emisora
actual. No se lo notifica a nadie,
simplemente porque no se consideró
importante hacerlo en este caso

La vista
View.java (1/2)
10

El Vista guarda una referencia al
Controlador. Muy importante...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación Mvc 3
  • MVC
  • MVC
  • 20 Recipes For Programming Mvc 3
  • mvc-JSP
  • mvc software
  • mvc asp
  • Entityframework-Y-Mvc

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS