Ho un'applicazione swing composta da molti interfacce utente
Queste interfacce estendono una jdialog o un jpanel e implementano ActionListeners. Volevo sapere qual è, secondo voi il modo migliore (in termini di manutenzione e leggibilità di codice) per sviluppare queste classi
Supponiamo di voler realizzare un pannello di opzioni
First solution
Per ogni interfaccia utente realizzo due classi,
La prima classe extends jpanel:
package com.myapp.graphics.OptionPanel (com.myapp.graphics.InfoPanel ecc.. )
public class OptionPanel extends JPanel {
//code
}
La seconda classe implements Actionlisteners:
package com.myapp.listeners.OptionListener (com.myapp.graphics.InfoListener ecc.. )
public class OptionListener implements ActionListeners{
//code
}
Second solution
Realizzo una sola classe che rappresenta il mio pannello di opzioni nel seguente modo:
package com.myapp.gui.OptionMenu
public class OptionMenu extends JPanel implements ActionListeners{
//code
}
Vantaggi della prima soluzione
Tengo separata la logica funzionale dalla rappresentazione grafica,
Svantaggi
Più codice da scrivere perchè devo far dialogare tra loro le due classi e quindi peggior leggibilità del codice
Secondo soluzione
Vantaggi: semplicità nella scrittura del codice da parte del programmatore
Svantaggi: non separo la logica funzionale dall'aspetto grafico
Delle due soluzioni secondo voi qual è la migliore? ci sono altre soluzioni?