Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DESARROLLO:
(Mínimo 2 páginas, 2 gráficos)
En líneas generales, MVC es una propuesta de arquitectura del software que utilizamos para
separar el código por sus distintas responsabilidades, manteniendo distintas capas que se
encargan de hacer una tarea muy concreta, lo que ofrece beneficios diversos.
MVC se usa inicialmente en sistemas donde requerimos el uso de interfaces de usuario,
aunque en la práctica el mismo patrón de arquitectura se puede utilizar para distintos tipos de
aplicaciones. Surge de la necesidad de crear software más robusto con un ciclo de vida más
adecuado, donde se potencie la facilidad de mantenimiento, reutilización del código y la
separación de conceptos.
Su fundamento es la separación del código en tres capas diferentes, acotadas por su
responsabilidad, a lo que llamamos Modelos, Vistas y Controladores, o lo que es lo mismo,
Model, Views y Controllers.
MVC es un invento que ya tiene varias décadas y fue presentado incluso antes de la aparición
de la Web. No obstante, en los últimos años ha ganado mucha fuerza y seguidores gracias a la
aparición de numerosos frameworks de desarrollo web que utilizan el patrón MVC como
modelo para la arquitectura de las aplicaciones web.
Modelos
Es la capa donde se trabaja con los datos, por tanto, contendrá mecanismos para acceder a la
información y también para actualizar su estado. Los datos los tendremos habitualmente en
una base de datos, por lo que en los modelos tendremos todas las funciones que accederán a
1
Ciencias de la Ingeniería
Vistas
Las vistas, como su nombre nos hacen entender, contienen el código de nuestra aplicación que
va a producir la visualización de las interfaces de usuario, o sea, el código que nos permitirá
renderizar los estados de nuestra aplicación en HTML. En las vistas nada más tenemos los
códigos HTML y PHP que nos permite mostrar la salida.
Controladores
Contiene el código necesario para responder a las acciones que se solicitan en la aplicación,
como visualizar un elemento, realizar una compra, una búsqueda de información. Es una capa
que sirve de enlace entre las vistas y los modelos, respondiendo a los mecanismos que puedan
requerirse para implementar las necesidades de nuestra aplicación. Sin embargo, su
responsabilidad no es manipular directamente datos, ni mostrar ningún tipo de salida, sino
servir de enlace entre los modelos y las vistas para implementar las diversas necesidades del
desarrollo.
La clase Vista
package mvc;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Vista extends JFrame{
public JButton pesos, dolares;
private JPanel panelB, panelR;
1
public JLabel lResultado;
Ciencias de la Ingeniería
public JTextField campoTexto;
public Vista() {
getContentPane().setLayout(new BorderLayout());
panelB = new JPanel();
panelB.setLayout(new FlowLayout());
panelR = new JPanel();
panelR.setLayout(new FlowLayout());
pesos = new JButton("Convertir a Pesos");
dolares = new JButton("Convertir a Dolares");
lResultado = new JLabel("Resultado:");
campoTexto = new JTextField(20);
panelB.add(pesos);
panelB.add(dolares);
panelR.add(lResultado);
add(campoTexto, BorderLayout.NORTH);
add(panelB, BorderLayout.SOUTH);
add(panelR, BorderLayout.CENTER);
}
}
La clase Controlador:
package mvc;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class Controlador implements ActionListener {
private Modelo;
private Vista;
private Double cantidad;
public Controlador(Modelo, Vista vista) {
this.modelo = modelo;
this.vista = vista;
this.vista.pesos.addActionListener(this);
this.vista.dolares.addActionListener(this);
}
public void iniciarVista() {
vista.setTitle("Conversor");
vista.pack();
vista.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
vista.setLocationRelativeTo(null);
vista.setVisible(true);
}
public void actionPerformed(ActionEvent evento) {
if(vista.pesos == evento.getSource()) {
if(!"".equals(vista.campoTexto.getText())) {
try{
cantidad = Double.parseDouble(vista.campoTexto.getText());
modelo.setCantidad(cantidad);
modelo.setMoneda(13.943);
modelo.convetirDolarAPeso();
vista.lResultado.setText(modelo.getResultado().toString());
}catch(NumberFormatException e) {
vista.lResultado.setText("Introduzca una cantidad valida...");
1
}
Ciencias de la Ingeniería
}
}
else if(vista.dolares == evento.getSource()) {
if(!"".equals(vista.campoTexto.getText())) {
try{
cantidad = Double.parseDouble(vista.campoTexto.getText());
modelo.setCantidad(cantidad);
modelo.setMoneda(0.072);
modelo.convertirPesoADolar();
vista.lResultado.setText(modelo.getResultado().toString());
}catch(NumberFormatException e) {
vista.lResultado.setText("Introduzca una cantidad valida...");
}
}
}
}
}
Ciencias de la Ingeniería
COMENTARIO:
BIBLIOGRAFÍA:
MVC
https://developer.mozilla.org/es/docs/Glossary/MVC
1
Ciencias de la Ingeniería