Modelo Vista Controlador
El patrón Modelo-Vista-Controlador (MVC)
Programación Orientada a Objetos Facultad de Informática
Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid
El patrón MVC
MVC: Modelo-Vista-Controlador Es un patrón de arquitectura de las aplicaciones software
Separa lalógica de negocio de la interfaz de usuario
• Facilita la evolución por separado de ambos aspectos • Incrementa reutilización y flexibilidad
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
2
El patrón MVC
Historia
Descrito por primera vez en 1979 para Smalltalk
• http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
Utilizado en múltiples frameworks
• Java Swing • Java Enterprise Edition (J2EE) • XForms (Formato XML estándar del W3C para la especificación de un modelo de proceso de datos XML e interfaces de usuario como formularios web) • GTK+ (escrito en C, toolkit creado por Gnome para construir aplicaciones gráficas, inicialmente para el sistema X Window) • ASP.NET MVC Framework (Microsoft) • Google Web Toolkit(GWT, para crear aplicaciones Ajax con Java) • Apache Struts (framework para aplicaciones web J2EE) • Ruby on Rails (framework para aplicaciones web con Ruby) • Etc., etc., etc.
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
3
El patrón MVC
Modelo-Vista-Controlador
Un modelo Varias vistas Varios controladores Las vistas y loscontroladores suelen estar muy relacionados
• Los controladores tratan los eventos que se producen en la interfaz gráfica (vista)
Esta separación de aspectos de una aplicación da mucha flexibilidad al desarrollador
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
4
El patrón MVC
Flujo de control
1. 2.
El usuario realizauna acción en la interfaz El controlador trata el evento de entrada
Previamente se ha registrado
3.
4.
El controlador notifica al modelo la acción del usuario, lo que puede implicar un cambio del estado del modelo (si no es una mera consulta) Se genera una nueva vista. La vista toma los datos del modelo
El modelo no tiene conocimiento directo de la vista
5.
La interfaz deusuario espera otra interacción del usuario, que comenzará otro nuevo ciclo
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
5
MVC en aplicaciones web
Vista:
la página HTML código que obtiene datos dinámicamente y genera el contenido HTML la información almacenada en una base de datos o en XML junto con las reglas de negocio que transformanesa información (teniendo en cuenta las acciones de los usuarios)
Controlador:
Modelo:
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
6
MVC en Java Swing
Modelo:
El modelo lo realiza el desarrollador Conjunto de objetos de clases que heredan de java.awt.Component El controlador es el thread de tratamientode eventos, que captura y propaga los eventos a la vista y al modelo Clases de tratamiento de los eventos (a veces como clases anónimas) que implementan interfaces de tipo EventListener (ActionListener, MouseListener, WindowListener, etc.)
Vista:
Controlador:
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
7
Ejemplo:Calculadora de euros a pesetas
Una clase sencilla que da operaciones para calcular la conversión entre euros y pesetas
En el constructor se indica el cambio Métodos
• Calcular pesetas de una cantidad en euros • Calcular euros de una cantidad en pesetas
Juan Pavón Mestras Facultad de Informática UCM, 2008-09
Programación Orientada a Objetos
8
Calculadora Euros-Pesetas...
Regístrate para leer el documento completo.