SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesVictor Escamilla
 
Cuestionario
CuestionarioCuestionario
CuestionarioJose Nava
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-RRobert Rodriguez
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capasEsbeyiz
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasAlex Uhu Colli
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónYare LoZada
 
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---uniRAUL 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 ClaseGuillermo Díaz
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 

Was ist angesagt? (20)

Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Presentación JavaScript
Presentación JavaScriptPresentación JavaScript
Presentación JavaScript
 
Modelo Entidad Relacion E-R
Modelo Entidad Relacion E-RModelo Entidad Relacion E-R
Modelo Entidad Relacion E-R
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas
 
Diagramas De Caso De Uso
Diagramas De Caso De UsoDiagramas De Caso De Uso
Diagramas De Caso De Uso
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
Modelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capasModelo vista controlador vas Programacion por n capas
Modelo vista controlador vas Programacion por n capas
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
 
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
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
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
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 

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

Ähnlich wie 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
 

Mehr von Jose R. Hilera

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ógicaJose R. Hilera
 
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:2018Jose R. Hilera
 
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ógicaJose R. Hilera
 
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 vidaJose R. Hilera
 
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íasJose R. Hilera
 
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...Jose R. Hilera
 
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)Jose R. Hilera
 
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/...Jose R. Hilera
 
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 RESTJose R. Hilera
 
Contenidos accesibles para las redes sociales
Contenidos accesibles para las redes socialesContenidos accesibles para las redes sociales
Contenidos accesibles para las redes socialesJose R. Hilera
 
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 JavaScriptJose R. Hilera
 
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.0Jose R. Hilera
 
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 webJose R. Hilera
 
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 W3CJose R. Hilera
 
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 HTML5Jose R. Hilera
 
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)Jose R. Hilera
 
Estándares de accesibilidad web
Estándares de accesibilidad webEstándares de accesibilidad web
Estándares de accesibilidad webJose 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 modelosJose R. Hilera
 

Mehr von 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