SlideShare una empresa de Scribd logo
Patrón de diseño
Modelo-Vista-Controlador (MVC)
Objetivos del patrón MVC
• El objetivo es independizar las interfaces
de usuario de los datos
• Para ello propone organizar la arquitectura
del software en clases de tres tipos
– Modelo: Clases que representan datos y la
lógica de negocio.
– Vista: Clases que representan interfaces de
usuario.
– Controlador: Clases que relacionan la vista
con el modelo.
Clases en MVC
Funcionamiento MVC
Ejemplo en Java
Ejemplo en Java
Diagrama de clases
Ejemplo en Java
Pedido.java (modelo)
public class Pedido {
private String codigoPedido;
private String estadoPedido;
private String fechaPedido;
public Pedido(){
}
public boolean borrarPedido (String codigoPedido) {
...
}
...
}
Ejemplo en Java
VistaBorrarPedido.java (vista)
public class VistaBorrarPedido extends JFrame {
private JButton botonRealizarBorrado;
private JLabel labelCodigoPedido;
private JLabel labelResultado;
private JTextField textoCodigoPedido;
public String leerCodigoPedido (){
return textoCodigoPedido.getText();
}
public void escribirResultado (String resultado){
labelResultado.setText(resultado);
}
void asignarControlador (ControlBorrarPedido c) {
botonRealizarBorrado.addActionListener(c);
}
void arranca () {
setVisible(true);
}
Ejemplo en Java
ControlBorrarPedido.java (controlador)
public class ControlBorrarPedido implements ActionListener {
Pedido pedido; // Modelo
VistaBorrarPedido vistaBorrarPedido; // Vista
public ControlBorrarPedido(VistaBorrarPedido v) {
vistaBorrarPedido = v;
}
public void actionPerformed(ActionEvent evento) {
pedido = new Pedido();
String codigoPedido = vistaBorrarPedido.leerCodigoPedido();
String resultado;
if (pedido.borrarPedido(codigoPedido)) {
resultado = "Borrado con éxito";
} else {
resultado = "No se ha podido borrar";
};
vistaBorrarPedido.escribirResultado(resultado);
}
}
Ejemplo en Java
VistaMenuPrincipal.java (principal)
public class VistaMenuPrincipal extends JFrame {
VistaBorrarPedido vistaBorrarPedido;
ControlBorrarPedido controlBorrarPedido;
private void botonBorrarPedidoActionPerformed(ActionEvent evt) {
vistaBorrarPedido = new VistaBorrarPedido();
controlBorrarPedido = new ControlBorrarPedido(vistaBorrarPedido);
vistaBorrarPedido.asignarControlador(controlBorrarPedido);
vistaBorrarPedido.arranca();
}
...
}
Ejemplo en Java
Diagrama de secuencia
Ejemplo en Java
Diagrama de comunicación

Más contenido relacionado

La actualidad más candente

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
programadorjavablog
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
landeta_p
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
RAUL CHIPANA LARICO
 

La actualidad más candente (20)

Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No Funcionales
 
Jerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismoJerarquía de clases, herencia, polimorfismo
Jerarquía de clases, herencia, polimorfismo
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Diagramas de clase.pptx
Diagramas de clase.pptxDiagramas de clase.pptx
Diagramas de clase.pptx
 
Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bd
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uniPrototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
Prototipo de-sistema-para-matricula-e-inscripcion-de-asignaturas---uni
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 

Similar a Patrón de diseño Modelo-Vista-Controlador (MVC)

PPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptxPPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptx
AaronContreras28
 
MVC - (Spanish)
MVC - (Spanish)MVC - (Spanish)
MVC - (Spanish)
Senior Dev
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
Laura Palma
 

Similar a Patrón de diseño Modelo-Vista-Controlador (MVC) (20)

PPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptxPPT-S08-MMIRANDA-2022-01.pptx
PPT-S08-MMIRANDA-2022-01.pptx
 
Programacion 3 mvc
Programacion 3 mvcProgramacion 3 mvc
Programacion 3 mvc
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Patron mvc struts
Patron mvc strutsPatron mvc struts
Patron mvc struts
 
Framework
FrameworkFramework
Framework
 
Ios.s4
Ios.s4Ios.s4
Ios.s4
 
patron-mvc
 patron-mvc patron-mvc
patron-mvc
 
MVC - (Spanish)
MVC - (Spanish)MVC - (Spanish)
MVC - (Spanish)
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
 
3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño3-Unidad 1. Arquitectura de Diseño
3-Unidad 1. Arquitectura de Diseño
 
Documentacion struts 2
Documentacion struts 2Documentacion struts 2
Documentacion struts 2
 
Documentacionstruts2 luiggi
Documentacionstruts2 luiggiDocumentacionstruts2 luiggi
Documentacionstruts2 luiggi
 
Documentacion struts2
Documentacion struts2Documentacion struts2
Documentacion struts2
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Aplicaciones en capas1
Aplicaciones en capas1Aplicaciones en capas1
Aplicaciones en capas1
 

Más de Jose R. Hilera

Estándares de accesibilidad web
Estándares de accesibilidad webEstándares de accesibilidad web
Estándares de accesibilidad web
Jose R. Hilera
 
Metodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelosMetodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelos
Jose R. Hilera
 

Más de Jose R. Hilera (20)

Tema 3. Herramientas para laInteligencia Tecnológica
Tema 3. Herramientas para laInteligencia TecnológicaTema 3. Herramientas para laInteligencia Tecnológica
Tema 3. Herramientas para laInteligencia Tecnológica
 
Tema 2. Sistema de Inteligencia Tecnológica: Norma UNE 166006:2018
Tema 2. Sistema de Inteligencia Tecnológica: Norma UNE 166006:2018Tema 2. Sistema de Inteligencia Tecnológica: Norma UNE 166006:2018
Tema 2. Sistema de Inteligencia Tecnológica: Norma UNE 166006:2018
 
Tema 1. Conceptos básicos sobre Inteligencia Tecnológica
Tema 1. Conceptos básicos sobre Inteligencia TecnológicaTema 1. Conceptos básicos sobre Inteligencia Tecnológica
Tema 1. Conceptos básicos sobre Inteligencia Tecnológica
 
Tema 4. Aprendizaje a lo largo de la vida
Tema 4. Aprendizaje a lo largo de la vidaTema 4. Aprendizaje a lo largo de la vida
Tema 4. Aprendizaje a lo largo de la vida
 
Tema 5. Evaluación y comparación de tecnologías
Tema 5. Evaluación y comparación de tecnologíasTema 5. Evaluación y comparación de tecnologías
Tema 5. Evaluación y comparación de tecnologías
 
Evaluación de la accesibilidad de aplicaciones para dispositivos móviles apli...
Evaluación de la accesibilidad de aplicaciones para dispositivos móviles apli...Evaluación de la accesibilidad de aplicaciones para dispositivos móviles apli...
Evaluación de la accesibilidad de aplicaciones para dispositivos móviles apli...
 
Aspectos generales sobre accesibilidad de aplicaciones móviles (apps)
Aspectos generales sobre accesibilidad de aplicaciones móviles (apps)Aspectos generales sobre accesibilidad de aplicaciones móviles (apps)
Aspectos generales sobre accesibilidad de aplicaciones móviles (apps)
 
Accesibilidad de aplicaciones para dispositivos móviles aplicando el RD 1112/...
Accesibilidad de aplicaciones para dispositivos móviles aplicando el RD 1112/...Accesibilidad de aplicaciones para dispositivos móviles aplicando el RD 1112/...
Accesibilidad de aplicaciones para dispositivos móviles aplicando el RD 1112/...
 
Desarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web RESTDesarrollo dirigido por modelo de servicios web REST
Desarrollo dirigido por modelo de servicios web REST
 
Perfiles UML
Perfiles UMLPerfiles UML
Perfiles UML
 
Contenidos accesibles para las redes sociales
Contenidos accesibles para las redes socialesContenidos accesibles para las redes sociales
Contenidos accesibles para las redes sociales
 
Ejemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScriptEjemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScript
 
Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0
 
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página webEjemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
 
Ejemplos de WCAG 2.0
Ejemplos de WCAG 2.0Ejemplos de WCAG 2.0
Ejemplos de WCAG 2.0
 
Resumen de las pautas WCAG 2.0 de W3C
Resumen de las pautas WCAG 2.0 de W3CResumen de las pautas WCAG 2.0 de W3C
Resumen de las pautas WCAG 2.0 de W3C
 
Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5
 
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
 
Estándares de accesibilidad web
Estándares de accesibilidad webEstándares de accesibilidad web
Estándares de accesibilidad web
 
Metodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelosMetodologías de ingeniería Web dirigida por modelos
Metodologías de ingeniería Web dirigida por modelos
 

Último

Último (11)

FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisiónPSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 

Patrón de diseño Modelo-Vista-Controlador (MVC)

  • 2. Objetivos del patrón MVC • El objetivo es independizar las interfaces de usuario de los datos • Para ello propone organizar la arquitectura del software en clases de tres tipos – Modelo: Clases que representan datos y la lógica de negocio. – Vista: Clases que representan interfaces de usuario. – Controlador: Clases que relacionan la vista con el modelo.
  • 7. Ejemplo en Java Pedido.java (modelo) public class Pedido { private String codigoPedido; private String estadoPedido; private String fechaPedido; public Pedido(){ } public boolean borrarPedido (String codigoPedido) { ... } ... }
  • 8. Ejemplo en Java VistaBorrarPedido.java (vista) public class VistaBorrarPedido extends JFrame { private JButton botonRealizarBorrado; private JLabel labelCodigoPedido; private JLabel labelResultado; private JTextField textoCodigoPedido; public String leerCodigoPedido (){ return textoCodigoPedido.getText(); } public void escribirResultado (String resultado){ labelResultado.setText(resultado); } void asignarControlador (ControlBorrarPedido c) { botonRealizarBorrado.addActionListener(c); } void arranca () { setVisible(true); }
  • 9. Ejemplo en Java ControlBorrarPedido.java (controlador) public class ControlBorrarPedido implements ActionListener { Pedido pedido; // Modelo VistaBorrarPedido vistaBorrarPedido; // Vista public ControlBorrarPedido(VistaBorrarPedido v) { vistaBorrarPedido = v; } public void actionPerformed(ActionEvent evento) { pedido = new Pedido(); String codigoPedido = vistaBorrarPedido.leerCodigoPedido(); String resultado; if (pedido.borrarPedido(codigoPedido)) { resultado = "Borrado con éxito"; } else { resultado = "No se ha podido borrar"; }; vistaBorrarPedido.escribirResultado(resultado); } }
  • 10. Ejemplo en Java VistaMenuPrincipal.java (principal) public class VistaMenuPrincipal extends JFrame { VistaBorrarPedido vistaBorrarPedido; ControlBorrarPedido controlBorrarPedido; private void botonBorrarPedidoActionPerformed(ActionEvent evt) { vistaBorrarPedido = new VistaBorrarPedido(); controlBorrarPedido = new ControlBorrarPedido(vistaBorrarPedido); vistaBorrarPedido.asignarControlador(controlBorrarPedido); vistaBorrarPedido.arranca(); } ... }
  • 11. Ejemplo en Java Diagrama de secuencia
  • 12. Ejemplo en Java Diagrama de comunicación