Hola comienzo a programar en java. me he leido algunos libros como el de la referencia de java-Herbert Schildt y el de Deitel, son muy buenos para comprender los conceptos de java, Sin embargo esos libros no explican sobre como usar los patrones como mvc en java.
Antes de mal acostumbrarme a escribir codigo espaguetti,prefiero comprender bien al menos como usar el patron mvc. Y es donde al buscar ejemplos me surgen las dudas, por ejemplo cuando se crea una interfaz grafica usando swing algunos declaran los componentes de la interfaz como públicos por ejemplo
Código:
public j2Button.j2Button cmdAcercade;
public j2Button.j2Button cmdExit;
public j2Button.j2Button cmdIdentificacion;
public j2Button.j2Button cmdImprimir;
public j2Button.j2Button cmdProgramar;
public JCDesktopPane.JCDesktopPane jCDesktopPane1;
y en otro codigo que encontre los declaran como privados
Código:
private Coordinador miCoordinador; //objeto miCoordinador que permite la relacion entre esta clase y la clase coordinador
private JTextArea areaIntroduccion;
private JLabel labelTitulo, labelSeleccion;
private JButton botonRegistrar,botonBuscar;
De acuerdo a lo que he leido deberian ser privados y usar metodos publicos set y get para actualizar cada componente,es asi? y lo siguiente me tiene mas desconcertado ya que en el segundo trozo de codigo,donde declaran los componentes como privados, implementan el metodo actionPerformed de la interfazActionListener en la vista, segun he leido ese es el metodo que maneja el evento cuando hace click en los botones, Pero ese metodo deberia ser parte de la vista,el controlado o el modelo?
Código:
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()==botonRegistrar) {
miCoordinador.mostrarVentanaRegistro();
}
if (e.getSource()==botonBuscar) {
miCoordinador.mostrarVentanaConsulta();
}
}
En el libro de deitel incluso usan una inner class y alli meten ese codigo,pero en todo caso no estan usando ningun patron de diseño,y en primer trozo de codigo,donde estan los atributos como publicos, implementan el actionPerformed en el controlador
. Hay algo como una especie de guia MVC para java o es flexible a que cada quien los implemente a su criterio, al final lo que si tienen en comuna mbos codigos es que al instanciar la clase controlador le envian como argumentos la vista y el modelo new Controlador(Vista vista,Modelo modelo)