MVC
Modelo - Vista - Controlador
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
Patrones
 Un patrón es una solución probada que se puede aplicar con
éxito a un determinado tipo de problemas que aparece con
frecuencia.
 Esqueleto de aplicación básica que el diseñador ha de adaptar
a sus necesidades.
 Un patrón de diseño en software es una colección de objetos
que incluye:
 Relaciones entre estos objetos
 Desarrollados para resolver un problema concreto
 Se ha comprobado que funcionan bien (han sido testados).
Modelo-Vista-Controlador
 MVC es un patrón de diseño orientado a objetos.
 Fue desarrollado en el Centro de Investigaciones
Xerox Palo Alto a finales de los años setenta.
 Define una buena arquitectura para un sitio web
 Especifica el uso de clases para dividir nuestra
aplicación:
 Lógica del negocio -> datos persistentes
 Lógica de presentación -> como visualizamos los
datos
 Flujo de la aplicación -> a través del controlador
MVC: Modelo
 Conjunto de Clases y Objetos correspondientes al Modelo
del Negocio para nuestra aplicación (estados y
funcionalidad)
 Es deseable un bajo acoplamiento con Vistas y
Controladores
 Se definen métodos para realizar consultas (informar el
estado), comandos (modificar el estado) y mecanismos de
notificación (para informar a los observadores / vistas)
Modelo
Controlador
Vista
MVC: Vista
 Administra la visualización y presentación de la
información
 Observa al Modelo para actualizar los cambios
 Al definirse en el modelo una interfaz clara y estable, es
fácil implementar múltiples Vistas para un mismo modelo
 Altamente dependiente del dispositivo y tecnología de
visualización
 Muy dependiente del Modelo (debe conocerlo)
Modelo
Controlador
Vista
MVC: Controlador
 Responsable de definir el comportamiento de la aplicación
 Recibe los eventos del usuario y decide qué es lo que se debe
hacer, mapeándolos en comandos (mensajes) hacia el
Modelo
 Altamente dependiente de los dispositivos y mecanismos de
interacción del usuario
 Muy dependiente del Modelo (debe conocerlo)
Modelo
Controlador
Vista
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
 Ejemplos
 ¿ Preguntas y Respuestas ?
MVC
MVC
MVC
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
 Ejemplos
 ¿ Preguntas y Respuestas ?
Funcionamiento
Flujo de ver información:
Funcionamiento
Flujo de actualizar información:
Modelo
Controlador
Vista
cObjeto
cNave
cNaveE cNavePcNaveK
cEspacio
cCamara
Funcionamiento
Controlador Frontal
Model
Controller
input
update
View
register
View
update
View
Funcionamiento
Model
(JavaBean)
Controller
(Servlet)request
update
View
(JSP)
get
information
forward
response
Funcionamiento en J2EE
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
MVC 1
MVC 2
Agenda
 Conceptos Generales
 Esquemas
 Aplicación del Patrón
 Versiones del Patrón
 Mecanismos de Notificación
MVC (Notificación)
Eventos
 Totalmente desacoplado
 Vistas escuchan y responden a los eventos de
notificación de sus respectivos modelos (si les
interesa)
 Modelo desconoce qué pasa, sólo responde a los
mensajes recibidos (comandos y consultas)
Modelo Vista
update
MVC (Notificación)
Observadores / Vistas Asociadas
Modelo conoce la existencia de
“observadores” o vistas asociadas
Les envía activamente un mensaje de
notificación (sin información)
Fácil de implementar, pero limitado en
flexibilidad
El controlador también puede observar al
modelo
Modelo Vista
update
Modelo Observador
Vista 4
Vista 3
Vista 2
Vista 1
update Elementos
Dependientes
MVC (Notificación)
¿ Preguntas?

MVC