SlideShare una empresa de Scribd logo
Modelo-Vista-Controlador (MVC)
René Pilataxi A.
Modelo-Vista-Controlador
 Este patrón fue descrito por primera vez por Trygve Reenskaug
en 1979, y la implementación original fue realizada en Smalltalk
en los laboratorios Xerox.
 MVC se basa en la separación de la aplicación en tres capas
principales: Modelo, Vista y Controlador.
 Se usa (él o alguna de sus variantes) en la gran mayoría de las
interfaces de usuario.
Modelo-Vista-Controlador
 Modelo: es la representación específica del dominio de la
información sobre la cual funciona la aplicación.
 El modelo es otra forma de llamar a la capa de dominio.
 La lógica de dominio añade significado a los datos; por
ejemplo, calculando si hoy es el cumpleaños del usuario o
los totales, impuestos o portes en un carrito de la compra.
Modelo-Vista-Controlador
 Vista: Se presenta el modelo en un formato adecuado para
interactuar, usualmente un elemento de interfaz de usuario.
 Controlador: Este responde a eventos, usualmente
acciones del usuario e invoca cambios en el modelo y
probablemente en la vista.
Modelo-Vista-Controlador
En general
Modelo-Vista-Controlador
 Muchas aplicaciones utilizan un mecanismo de
almacenamiento persistente (como puede ser una base de
datos) para almacenar los datos. MVC no menciona
específicamente esta capa de acceso a datos porque
supone que está encapsulada por el modelo.
 El objetivo primordial del MVC es la reutilización del código
ya implementado.
 Esta tarea se facilita mucho si a la hora de programar
tenemos la precaución de separar el código en varias
partes que sean susceptibles de ser reutilizadas sin
modificaciones.
Modelo-Vista-Controlador
Ejemplos
 Los datos de una hoja de cálculo pueden mostrarse de en
formato tabular, con un gráfico de barras, con uno de
sectores.
 Los datos son el modelo.
 Si cambia el modelo, las vistas deberían actualizarse en
consonancia.
 El usuario manipula el modelo a través de las vistas.
􀁺 (en realidad, a través de los controladores)
Modelo-Vista-Controlador
Mas de una Vista de un Modelo
de Datos
Modelo-Vista-Controlador
 MVC es utilizado con mayor frecuencia en las
aplicaciones web, donde la Vista es la página
HTML, y el Controlador es el código que reúne la
data dinámica y genera el contenido de la página.
 El Modelo es representado por el contenido actual,
que usualmente se encuentra almacenado en una
base de datos o en archivos XML.
Modelo-Vista-Controlador
Modelo-Vista-Controlador
Fortalezas
 􀁺 Se presenta la misma información de distintas formas.
 􀁺 Las vistas y comportamiento de una aplicación deben reflejar
las manipulaciones de los datos de forma inmediata.
 􀁺 Debería ser fácil cambiar la interfaz de usuario (incluso en
tiempo de ejecución).
 􀁺 Permitir diferentes estándares de interfaz de usuario o portarla
a otros entornos no debería afectar al código de la aplicación.
Modelo-Vista-Controlador
 En UML
Se propone para el desarrollo del
Modelo de Análisis de las
aplicaciones, tres tipos de
clases fundamentales, con las
cuales podemos expresar
todas las funciones de
cualquier software, con sus
respectivas responsabilidades
Clase Interfaz <<Interface>>:
Recepcionar peticiones al
sistema.
Mostrar respuestas del
sistema.
Clase Entidad <<Entity>>:
Gestionar datos (información)
necesaria para el sistema.
Almacenar datos (información)
persistentes del sistema.
Provee la funcionalidad principal de
la aplicación
Clase Controlador
<<Controller>>:
Procesar Información del
sistema.
Gestionar visualización de
respuesta del sistema.
Obtiene los datos del modelo.
Modelo-Vista-Controlador
 Variante inicial del Patrón MVC.
Variantes del Modelo.
- Variante en la cual no existe ninguna comunicación entre el
Modelo y la Vista y esta última recibe los datos a mostrar a
través del Controlador.
Modelo-Vista-Controlador
 Variante en la cual se
desarrolla una
comunicación entre el
Modelo y la Vista, donde
esta última al mostrar los
datos los busca
directamente en el
Modelo, dada una
indicación del
Controlador,
disminuyendo el conjunto
de responsabilidades de
este último.
Variante Intermedia del Patrón MVC.
Modelo-Vista-Controlador
Muchas interfaces gráficas de usuario, como Swing o MFC,
hacen innecesario el uso de un controlador.
 􀁺 Definen su propio flujo de control y manejan los eventos
internamente.
 􀁺 Integran, así, la vista y el controlador.
 􀁺 A esta variante se la suele denominar Document-View
Modelo-Vista-Controlador
Un controlador (controlador.java, por ejemplo) puede gestionar el clic en un botón, de
tal forma que recoge datos por medio del Modelo (model.cargar_texto(..)) y los
manda a la Vista (el applet) para su actualización (vista.mostrar_texto( )):
/****************************************************************
Responde al click en botón "abrir" La respuesta al evento es hacer que se abra en la vista
el archivo correspondiente a la referencia seleccionada en el combo box
****************************************************************/
void b_abrir_actionPerformed(ActionEvent e) {
…
String texto_archivo = model.cargar_texto( indice_ref ); // Obtener texto de archivo
/*** Si la carga de archivo es ok, lo muestro. Si no, aviso de error ****/
if (texto_archivo != null) {
vista.mostrar_texto(texto_archivo); // Mostrar texto
vista.mostrar_aviso("Carga de " + path + " completada.");
}
else
vista.mostrar_aviso("Error en la carga de " + path);
}

Más contenido relacionado

PDF
ARQUITECTURA EN CAPAS.pdf
DavidVeraOlivera
 
PPTX
Modelo vista controlador
Emilio Sarabia
 
PPTX
Diseño de Software
Andrés Felipe Montoya Ríos
 
PPTX
2 1 vistas arquitectonicas
landeta_p
 
PPT
Arquitectura 3 Capas
Fani Calle
 
PPTX
Rational rose
Israel Chava Gonzales
 
PPTX
Arquitectura Basada En Componentes
urumisama
 
ARQUITECTURA EN CAPAS.pdf
DavidVeraOlivera
 
Modelo vista controlador
Emilio Sarabia
 
Diseño de Software
Andrés Felipe Montoya Ríos
 
2 1 vistas arquitectonicas
landeta_p
 
Arquitectura 3 Capas
Fani Calle
 
Rational rose
Israel Chava Gonzales
 
Arquitectura Basada En Componentes
urumisama
 

La actualidad más candente (20)

PDF
modelo vista controlador
com2merwil
 
PPTX
Presentación Modelo de Datos
Enrique Cabello
 
PPTX
Sistemas operativos distribuidos
Victor Reyes
 
PDF
Modelo relacional
Victor Quintero
 
PPTX
Normalizacion de bases de datos
Caro_Noirgean
 
PPTX
Diagrama de Componentes
Universidad Técnica del Norte
 
PDF
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
jose_rob
 
PPTX
Diseño de sistemas
Jenyfer Utitiaja
 
PPTX
Clasificación de las metodologías de desarrollo de software
ElvisAR
 
PDF
Clases y objetos de java
innovalabcun
 
PPTX
Arquitectura Multinivel
urumisama
 
PPTX
Metodología WEB UWE
Universidad Técnica del Norte
 
PDF
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
emilis
 
PPT
Unidad 3 Modelo De Negocio
Sergio Sanchez
 
PPTX
Capa de aplicación
Dayank Muñoz Almeida
 
PPT
Base De Datos Distribuidas
Jorge Guerra
 
DOCX
Componentes y evolucion del modelado de negocios(investigacion)
Anel Sosa
 
DOC
Plan desarrollo software
Michael Daniel Murillo
 
PDF
Programación 3: Clases y objetos en Java
Angel Vázquez Patiño
 
PPT
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Isidro Lopez Riuz
 
modelo vista controlador
com2merwil
 
Presentación Modelo de Datos
Enrique Cabello
 
Sistemas operativos distribuidos
Victor Reyes
 
Modelo relacional
Victor Quintero
 
Normalizacion de bases de datos
Caro_Noirgean
 
Diagrama de Componentes
Universidad Técnica del Norte
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
jose_rob
 
Diseño de sistemas
Jenyfer Utitiaja
 
Clasificación de las metodologías de desarrollo de software
ElvisAR
 
Clases y objetos de java
innovalabcun
 
Arquitectura Multinivel
urumisama
 
Metodología WEB UWE
Universidad Técnica del Norte
 
Cuadro comparativo analis y diseño estructurado Y analisis orientado a objetos
emilis
 
Unidad 3 Modelo De Negocio
Sergio Sanchez
 
Capa de aplicación
Dayank Muñoz Almeida
 
Base De Datos Distribuidas
Jorge Guerra
 
Componentes y evolucion del modelado de negocios(investigacion)
Anel Sosa
 
Plan desarrollo software
Michael Daniel Murillo
 
Programación 3: Clases y objetos en Java
Angel Vázquez Patiño
 
Unidad 1. Desarrollo de Aplicaciones Distribuidas
Isidro Lopez Riuz
 
Publicidad

Destacado (20)

PDF
Modelo, vista, controlador
Cecy Villalta
 
PPTX
Patron de Desarrollo Modelo Vista Controlador
Henry Vargas
 
PDF
Calculadora Gráfica Java implementando el Patrón MVC
Ignacio Aular Reyes
 
PDF
MODELO VISTA CONTROLADOR EN PHP
Gabriel Atilio Carrillo Seijas
 
DOCX
Modelo vista controlador
Luis Gutierrez
 
PDF
Modelo vista controlador #ihcpfgigs_Diseñoweb
Pierina G. Abad
 
PDF
Equipo 5 Metodos de Desarrllo de Software
Instituto Tecnologico Superior de La Venta- ISC A
 
ODP
Arquitectura Mvc
Lupita Lopez Glez
 
DOCX
Modelo vista controlador
Esteban Ariza
 
PDF
Calidad de software - Modelo de FURPS+
kof
 
PPSX
Patrones de diseño(presentación 7)
programadorjavablog
 
PPTX
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
Anusha Chickermane
 
PDF
Modelo vista controlador
Erick Aguila Martínez
 
DOCX
Modelo vista controlador vas Programacion por n capas
Alex Uhu Colli
 
PPTX
SOA (arquitectura orientada a servicios)
dina_k_d
 
PPTX
Arquitectura
thyago1211
 
PPT
Introducción a SOA
rdiegoc
 
PPT
LibreríAs De Java
Universidad Veracruzana
 
PPT
Arquitectura del software
Hender Orlando Puello Rincón
 
Modelo, vista, controlador
Cecy Villalta
 
Patron de Desarrollo Modelo Vista Controlador
Henry Vargas
 
Calculadora Gráfica Java implementando el Patrón MVC
Ignacio Aular Reyes
 
MODELO VISTA CONTROLADOR EN PHP
Gabriel Atilio Carrillo Seijas
 
Modelo vista controlador
Luis Gutierrez
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Pierina G. Abad
 
Equipo 5 Metodos de Desarrllo de Software
Instituto Tecnologico Superior de La Venta- ISC A
 
Arquitectura Mvc
Lupita Lopez Glez
 
Modelo vista controlador
Esteban Ariza
 
Calidad de software - Modelo de FURPS+
kof
 
Patrones de diseño(presentación 7)
programadorjavablog
 
SaaSy maps - using django-tenants and geodjango to provide web-gis software-a...
Anusha Chickermane
 
Modelo vista controlador
Erick Aguila Martínez
 
Modelo vista controlador vas Programacion por n capas
Alex Uhu Colli
 
SOA (arquitectura orientada a servicios)
dina_k_d
 
Arquitectura
thyago1211
 
Introducción a SOA
rdiegoc
 
LibreríAs De Java
Universidad Veracruzana
 
Arquitectura del software
Hender Orlando Puello Rincón
 
Publicidad

Similar a MODELO VISTA CONTROLADOR (20)

PPTX
Modelo vistacontrolador
René Pilataxi
 
PPTX
Modelo vistacontrolador
René Pilataxi
 
PPT
Ingenieria del software
anderson0328
 
PDF
patrón MVC.pdf
German Zarza
 
PPTX
MVC - (Spanish)
Senior Dev
 
PPTX
modelo MVC.pptx
Ram Vazquez
 
PPTX
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
Luis Fernando Aguas Bucheli
 
PDF
19.1 Concepto - Modelo Vista Controlador
Fernando Solis
 
PPTX
S6-PD2-Modelo Vista Controlador
Luis Fernando Aguas Bucheli
 
PDF
Clase 10 mvc
Demián Gutierrez
 
PDF
Modelo Vista Controlador.pdf
kilosquita
 
PPTX
2-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
PDF
Modelo-Vista-Controlador(Arquitectura) (MVC)
Fernando Solis
 
PPTX
Presentación MVC
Gisela Parra Quero
 
PDF
PPT Crear tablas y utilizar marquesinas.pdf
aldairjosue147
 
Modelo vistacontrolador
René Pilataxi
 
Modelo vistacontrolador
René Pilataxi
 
Ingenieria del software
anderson0328
 
patrón MVC.pdf
German Zarza
 
MVC - (Spanish)
Senior Dev
 
modelo MVC.pptx
Ram Vazquez
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
Luis Fernando Aguas Bucheli
 
19.1 Concepto - Modelo Vista Controlador
Fernando Solis
 
S6-PD2-Modelo Vista Controlador
Luis Fernando Aguas Bucheli
 
Clase 10 mvc
Demián Gutierrez
 
Modelo Vista Controlador.pdf
kilosquita
 
2-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
Modelo-Vista-Controlador(Arquitectura) (MVC)
Fernando Solis
 
Presentación MVC
Gisela Parra Quero
 
PPT Crear tablas y utilizar marquesinas.pdf
aldairjosue147
 

Más de René Pilataxi (6)

PPTX
Foros de voz
René Pilataxi
 
PPTX
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
René Pilataxi
 
PPTX
Intro jsf
René Pilataxi
 
PPTX
Kwiksurvey
René Pilataxi
 
ODP
Aula virtualbd
René Pilataxi
 
Foros de voz
René Pilataxi
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
René Pilataxi
 
Intro jsf
René Pilataxi
 
Kwiksurvey
René Pilataxi
 
Aula virtualbd
René Pilataxi
 

MODELO VISTA CONTROLADOR

  • 2. Modelo-Vista-Controlador  Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación original fue realizada en Smalltalk en los laboratorios Xerox.  MVC se basa en la separación de la aplicación en tres capas principales: Modelo, Vista y Controlador.  Se usa (él o alguna de sus variantes) en la gran mayoría de las interfaces de usuario.
  • 3. Modelo-Vista-Controlador  Modelo: es la representación específica del dominio de la información sobre la cual funciona la aplicación.  El modelo es otra forma de llamar a la capa de dominio.  La lógica de dominio añade significado a los datos; por ejemplo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra.
  • 4. Modelo-Vista-Controlador  Vista: Se presenta el modelo en un formato adecuado para interactuar, usualmente un elemento de interfaz de usuario.  Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista.
  • 6. Modelo-Vista-Controlador  Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos. MVC no menciona específicamente esta capa de acceso a datos porque supone que está encapsulada por el modelo.  El objetivo primordial del MVC es la reutilización del código ya implementado.  Esta tarea se facilita mucho si a la hora de programar tenemos la precaución de separar el código en varias partes que sean susceptibles de ser reutilizadas sin modificaciones.
  • 7. Modelo-Vista-Controlador Ejemplos  Los datos de una hoja de cálculo pueden mostrarse de en formato tabular, con un gráfico de barras, con uno de sectores.  Los datos son el modelo.  Si cambia el modelo, las vistas deberían actualizarse en consonancia.  El usuario manipula el modelo a través de las vistas. 􀁺 (en realidad, a través de los controladores)
  • 8. Modelo-Vista-Controlador Mas de una Vista de un Modelo de Datos
  • 9. Modelo-Vista-Controlador  MVC es utilizado con mayor frecuencia en las aplicaciones web, donde la Vista es la página HTML, y el Controlador es el código que reúne la data dinámica y genera el contenido de la página.  El Modelo es representado por el contenido actual, que usualmente se encuentra almacenado en una base de datos o en archivos XML.
  • 11. Modelo-Vista-Controlador Fortalezas  􀁺 Se presenta la misma información de distintas formas.  􀁺 Las vistas y comportamiento de una aplicación deben reflejar las manipulaciones de los datos de forma inmediata.  􀁺 Debería ser fácil cambiar la interfaz de usuario (incluso en tiempo de ejecución).  􀁺 Permitir diferentes estándares de interfaz de usuario o portarla a otros entornos no debería afectar al código de la aplicación.
  • 12. Modelo-Vista-Controlador  En UML Se propone para el desarrollo del Modelo de Análisis de las aplicaciones, tres tipos de clases fundamentales, con las cuales podemos expresar todas las funciones de cualquier software, con sus respectivas responsabilidades Clase Interfaz <<Interface>>: Recepcionar peticiones al sistema. Mostrar respuestas del sistema. Clase Entidad <<Entity>>: Gestionar datos (información) necesaria para el sistema. Almacenar datos (información) persistentes del sistema. Provee la funcionalidad principal de la aplicación Clase Controlador <<Controller>>: Procesar Información del sistema. Gestionar visualización de respuesta del sistema. Obtiene los datos del modelo.
  • 13. Modelo-Vista-Controlador  Variante inicial del Patrón MVC. Variantes del Modelo. - Variante en la cual no existe ninguna comunicación entre el Modelo y la Vista y esta última recibe los datos a mostrar a través del Controlador.
  • 14. Modelo-Vista-Controlador  Variante en la cual se desarrolla una comunicación entre el Modelo y la Vista, donde esta última al mostrar los datos los busca directamente en el Modelo, dada una indicación del Controlador, disminuyendo el conjunto de responsabilidades de este último. Variante Intermedia del Patrón MVC.
  • 15. Modelo-Vista-Controlador Muchas interfaces gráficas de usuario, como Swing o MFC, hacen innecesario el uso de un controlador.  􀁺 Definen su propio flujo de control y manejan los eventos internamente.  􀁺 Integran, así, la vista y el controlador.  􀁺 A esta variante se la suele denominar Document-View
  • 16. Modelo-Vista-Controlador Un controlador (controlador.java, por ejemplo) puede gestionar el clic en un botón, de tal forma que recoge datos por medio del Modelo (model.cargar_texto(..)) y los manda a la Vista (el applet) para su actualización (vista.mostrar_texto( )): /**************************************************************** Responde al click en botón "abrir" La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box ****************************************************************/ void b_abrir_actionPerformed(ActionEvent e) { … String texto_archivo = model.cargar_texto( indice_ref ); // Obtener texto de archivo /*** Si la carga de archivo es ok, lo muestro. Si no, aviso de error ****/ if (texto_archivo != null) { vista.mostrar_texto(texto_archivo); // Mostrar texto vista.mostrar_aviso("Carga de " + path + " completada."); } else vista.mostrar_aviso("Error en la carga de " + path); }