SlideShare una empresa de Scribd logo
1 de 12
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

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
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
Guillermo Díaz
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
Xochitl Saucedo Muñoz
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
yoiner santiago
 
Bases de datos relacionales mapa mental
Bases de datos relacionales mapa mentalBases de datos relacionales mapa mental
Bases de datos relacionales mapa mental
unacl20
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
hector_h30
 
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
 

La actualidad más candente (20)

Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
MVC
MVCMVC
MVC
 
 Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático Diagramas uml de sistema de cajero automático
 Diagramas uml de sistema de cajero automático
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL 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
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No Funcionales
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Bases de datos relacionales mapa mental
Bases de datos relacionales mapa mentalBases de datos relacionales mapa mental
Bases de datos relacionales mapa mental
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Crear conexion a servidor en MySQL Workbench
Crear conexion a servidor en  MySQL WorkbenchCrear conexion a servidor en  MySQL Workbench
Crear conexion a servidor en MySQL Workbench
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
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)
 

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
 

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