mvc

23
Cristian Suarez Felipe Claros Hector Arbelaez Ibeth Florez MODELO VISTA CONTROLADOR (MVC)

Upload: hector-arbelaez

Post on 22-Oct-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Mvc

Cristian SuarezFelipe ClarosHector ArbelaezIbeth Florez

MODELO VISTA CONTROLADOR(MVC)

Page 2: 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?

Page 3: 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.

Page 4: Mvc

• 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.

Page 5: Mvc

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

Page 6: Mvc

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.

Page 7: Mvc

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)

Page 8: Mvc

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.

Page 9: Mvc

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

Page 10: Mvc

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.

Page 11: Mvc

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.

Page 12: Mvc

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.

Page 13: Mvc

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.

Page 14: Mvc

C

V

M

3. Controlador requiere

métodos del Modelo

para cambiar su estado

4. Modelo cambia su

estado interno

DINÁMICA DEL MVC

Page 15: 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

Page 16: 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

Page 17: Mvc

C

V

M

9. Controlador informa a

las Vistas si se

deshabilitan algunos

elementos.

10. Vistas requieren

redibujado

DINÁMICA DEL MVC

Page 18: 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)

Page 19: Mvc

• 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)

Page 20: Mvc

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)

Page 21: Mvc

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)

Page 22: Mvc

Arquitectura Modelo-Vista-Controlador

22

function isPage(){

return $this->ispage; }

function getStr(){

return $this->str;}

} // end class

CONTROLADOR (ACTIONMAPPING)

Page 23: Mvc

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