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:
y en otro codigo que encontre los declaran como privadospublic j2Button.j2Button cmdAcercade; public j2Button.j2Button cmdExit; public j2Button.j2Button cmdIdentificacion; public j2Button.j2Button cmdImprimir; public j2Button.j2Button cmdProgramar; public JCDesktopPane.JCDesktopPane jCDesktopPane1;
Código:
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?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;
Código:
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) @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==botonRegistrar) { miCoordinador.mostrarVentanaRegistro(); } if (e.getSource()==botonBuscar) { miCoordinador.mostrarVentanaConsulta(); } }