mvc
TRANSCRIPT
Cristian SuarezFelipe ClarosHector ArbelaezIbeth Florez
MODELO VISTA CONTROLADOR(MVC)
Es un patrón de arquitectura de software cuya función es subdividir una aplicación en tres módulos que corresponden a la vista del usuario (la interfaz a la que accede el usuario), una lógica de control para captar los eventos que el usuario ha generado a través de la interfaz, y un modelo que gestiona los datos según le indique la lógica de control.
¿QUE ES MVC?
¿QUÉ ES UN PATRÓN DE DISEÑO?
Un patrón de diseño describe un problema que ocurre frecuentemente en el campo de la construcción de software y su respectiva solución; puede ser empleado muchas veces, en diferentes contextos, sin tener que duplicar el diseño. Se trata de un elemento de diseño que puede ser reutilizado. Un patrón de diseño tiene cuatro elementos esenciales:* El Nombre del Patrón: Es aquel que podemos utilizar para describir el problema de diseño, sus soluciones y consecuencias en una o dos palabras.
• El Problema: Describe cuándo aplicar el patrón. Especifica el problema y su contexto. Debe describir los problemas de diseño específicos así como su representación conceptual como objetos. En ocasiones, el problema debe incluir una lista de condiciones que se deben conocer antes de aplicarse el patrón.
• La Solución: Describe los elementos que construyen el diseño, sus responsabilidades y colaboraciones. La solución no describe un problema de diseño en particular, porque un patrón es una especie de plantilla que puede ser aplicada en diferentes situaciones.
• Consecuencias: Son los resultados de aplicar el patrón.
DESCRIPCIÓN DEL PATRÓN– Lógica de negocio Modelo.
El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio
– Gestión de eventos de usuario Controlador.El controlador es el responsable de recibir los eventos de entrada desde la vista.
– Presentación Vista.Se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página.
Controlador Vista Modelo
DESCRIPCIÓN: EL MODELO
• El modelo representa la lógica de negocio de la aplicación.
• Encapsular el modelo de una aplicación en componentes facilita la depuración, mejora la calidad y favorece la reutilización de código.
• Puede dividirse en dos tipos de componentes:– De estado.– De acción.
DESCRIPCIÓN: EL MODELO
• Los componentes de estado encapsulan el estado de la aplicación y exponen métodos para el acceso y cambio de éste.
• Al estar una capa por debajo de la capa de acción, los componentes de estado deben ser completamente independientes del protocolo. Así, podrán ser reutilizados en otro tipo de aplicaciones (RMI)
DESCRIPCIÓN: EL MODELO
• La capa de componentes de acción define los cambios permisibles del estado en respuesta a los eventos.
• Los componentes de acción no pueden ser completamente independientes del protocolo, pero, aún así, se debe intentar reducir el acoplamiento al máximo o incluso construir dos subcapas, una dependiente del protocolo que transforme los eventos y delegue el procesamiento a otra capa de componentes de acción independientes del protocolo.
DESCRIPCIÓN: EL MODELO
Componentes de acción dependientes del protocolo
Componentes de acción independientes del protocolo
Llamadas propias del protocolo
Componentes de estado (independientes del protocolo)
Acción
Estado
Llamadas propias de la aplicación
Llamadas propias de la aplicación
DESCRIPCIÓN: EL CONTROLADOR
• El controlador es responsable de recibir los eventos, determinar el procesador del evento, invocar al procesador y finalmente provocar la generación de la vista apropiada.
• En una aplicación web java la tecnología más adecuada para implementar los controladores son los Servlets.
• Estos servlets actúan como direccionadores (dispatchers) de las peticiones.
DESCRIPCIÓN: EL CONTROLADOR
• Los controladores deben realizar las siguientes tareas:– Control de la seguridad.– Identificación de eventos.– Preparar el modelo.– Procesar el evento.– Manejar los errores.– Provocar la generación de la respuesta.
DESCRIPCIÓN: LA VISTA• La vista representa la lógica de presentación de la
aplicación.• Los componentes de la vista extraen el estado actual
del sistema del modelo y proporcionan la interfaz de usuario para el protocolo que se está usando.
• Como parte de la generación la vista debe presentar al usuario el conjunto de eventos que puede generar en ese momento concreto.
• La tecnología Java indicada para la generación de vistas en aplicaciones web son las JSPs.
• Separar el modelo y la vista permite la construcción de interfaces con diferentes apariencias.
DINÁMICA DEL MVC
C
V
M
1. Una entrada del usuario
es enviada por el SO
al controlador apropiado
2. El controlador puede
requerir a la Vista que
“tenga” el foco del
evento.
C
V
M
3. Controlador requiere
métodos del Modelo
para cambiar su estado
4. Modelo cambia su
estado interno
DINÁMICA DEL MVC
C
V
M
5. Modelo notifica a todas
las Vistas dependientes
que hay datos que se
modificaron
6. Vistas requieren del
Modelo los valores de los
datos actuales.
DINÁMICA DEL MVC
C
V
M
7. Modelo notifica a todos
los Controladores
dependientes que hay
datos que cambiaron.
8. Controlador requiere del
Modelo los valores
actuales de los datos.
DINÁMICA DEL MVC
C
V
M
9. Controlador informa a
las Vistas si se
deshabilitan algunos
elementos.
10. Vistas requieren
redibujado
DINÁMICA DEL MVC
Arquitectura Modelo-Vista-Controlador
18
Los actions son objetos donde se realizan llamadas al modelo (crear, obtener y/o cambiar datos) y donde se toman decisiones sobre que parte de este se ejecuta.
CONTROLADOR (ACTIONS)
• Todos los actions tienen un método común llamado perform que devuelve una clase ActionMapping
• La clase ActionMapping puede ser o una vista u otro action (pasa la pelota)
CONTROLADOR (ACTIONS)
Arquitectura Modelo-Vista-Controlador
20
class SumaAction {function perform() {
$map = new ActionMapping(); $_REQUEST[‘suma’] = 2 + $_REQUEST[‘operando’];
$map->setStr("views/suma.php");$map->setIsPage(true);
return $map;}
} // end class
CONTROLADOR (ACTIONS)
Arquitectura Modelo-Vista-Controlador
21
class ActionMapping { var $str;
var $ispage;
function setStr($value){
$this->str = $value; } // end func
function setIsPage($value)$this->ispage = $value;
} // end func
CONTROLADOR (ACTIONMAPPING)
Arquitectura Modelo-Vista-Controlador
22
function isPage(){
return $this->ispage; }
function getStr(){
return $this->str;}
} // end class
CONTROLADOR (ACTIONMAPPING)
Arquitectura Modelo-Vista-Controlador
23
• El modelo vista controlador hace la programación más intuitiva y sencilla
• Cuando hay que realizar cambios en cuanto a manejo de datos se hacen en un solo sitio (el modelo)
CONCLUSIONES