Ho lavorato a un progetto e sono stato incaricato di progettare il front-end dell'interfaccia grafica dei progetti. Sto scrivendo in Java e usando il toolkit Swing. Per quanto riguarda l'usabilità, il front-end della GUI segue tutte le euristiche di Nielsen. Gli utenti possono facilmente arrivare dove vogliono passare attraverso il clic di un pulsante / JComboBox. Essenzialmente, nei termini Swing, ciò che accade è che le loro azioni guidano la creazione / eliminazione di pannelli personalizzati.
La GUI sta procedendo bene per la maggior parte. Tuttavia, devo ammettere di essere completamente costernato nella stretta rete di dipendenze in cui il mio codice viene soffocato.
Il problema principale che ho riscontrato, che non ho ancora potuto correggere, è come mantenere un riferimento ai pannelli / pulsanti modificati.
Darò un esempio:
Dire che c'è un pulsante A
Diciamo che c'è un pannello B che mostra l'immagine C
Diciamo che c'è un'altra immagine D (non attualmente visualizzata dal pannello B)
Quando l'utente fa clic su A, il pannello B dovrebbe rimuovere l'immagine C e visualizzare l'immagine D
La mia domanda è, qual è il modo migliore per tenere traccia del pannello B? Da quando ho bisogno di un punto globale di accesso al pannello di B, la mia soluzione è stata finora di calzascarpe solo in una variabile statica, e accedervi attraverso una serie di getter e setter statici. E questa variabile statica è solitamente memorizzata nella classe originale del riferimento. Cioè UserPanel ha una variabile statica che memorizza un riferimento a se stesso.
Esiste un modo facile, provato e vero per gestire questo tipo di situazioni? Come la mia GUI funziona bene, ma non è affatto modulare e / o robusto. Per aggiungere a questo, il temuto problema delle "dipendenze cicliche" evitato da così tanti programmatori è qui fuori in pieno effetto. Sono abbastanza nuovo per lo sviluppo e voglio solo fare in modo che il mio codice sarà abbastanza estendibile e non causerà un gran mal di testa per la prossima persona che decide di ottenere una prova a esso.
So che ci sono un sacco di libri là fuori che probabilmente hanno una bella soluzione elegante a questo, ma sfortunatamente non ho il tempo di leggere ora. Ho bisogno di qualcosa che sia veloce e sporco.
Grazie in anticipo