SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental umlrigo berto
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2David Motta Baldarrago
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisisJavier Rivera
 
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
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividadesTerryJoss
 
Ejemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlEjemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlAndrés Cruz
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...Jesús Navarro
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesCarlos Macallums
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
 

What's hot (20)

Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental uml
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Metodologiasad 1
Metodologiasad 1Metodologiasad 1
Metodologiasad 1
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 
UML
UMLUML
UML
 
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
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Ejemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlEjemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando Uml
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No Funcionales
 
Creación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
 

Similar to Patrón 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
 

More from 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
 

More from 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 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