Come ridurre al minimo l'utilizzo di variabili e oggetti statici

0

Sto cercando di implementare questo codice JavaFX dove voglio chiamare la classe Java remota e passare il flag booleano:

final CheckMenuItem toolbarSubMenuNavigation = new CheckMenuItem("Navigation");
    toolbarSubMenuNavigation.setOnAction(new EventHandler<ActionEvent>()
    {
        @Override
        public void handle(ActionEvent e)
        {

            //DataTabs.renderTab = toolbarSubMenuNavigation.isSelected();
            DataTabs.setRenderTab(toolbarSubMenuNavigation.isSelected());
            // call here the getter setter and send boolean flag
            System.out.println("subsystem1 #1 Enabled!");
        }
    });

Classe Java che voglio chiamare:

public class DataTabs
{    
    private static boolean renderTab; // make members *private*
    private static TabPane tabPane;

    public static boolean isRenderTab()
    {
        return DataTabs.renderTab;
    }

    public static void setRenderTab(boolean renderTab)
    {
        DataTabs.renderTab = renderTab;
        tabPane.setVisible(renderTab);
    }

    // somewhere below
    // set visible the tab pane
    TabPane tabPane = DataTabs.tabPane = new TabPane();
    tabPane.setVisible(renderTab);
}

Questa implementazione funziona ma voglio ottimizzarla per usare meno variabili e oggetti statici. Puoi dirmi quali sezioni del codice come possono essere ottimizzate?

    
posta Peter Penzov 26.06.2013 - 10:17
fonte

1 risposta

5
  1. rimuovi tutte le istanze della parola chiave static da DataTabs (così come ogni uso interno del prefisso% di coje% di tje.
  2. crea un'istanza della classe DataTabs.<member> nel tuo codice JavaFX e rendilo accessibile a quelle parti del codice che lo usano, passandolo ai costruttori e mantenendo un riferimento ad esso, o passandolo come metodo parametro.

Il passaggio 2 può essere difficile e richiede di ristrutturare del codice, ma ne vale la pena. Il problema con le cose statiche è che riduce la coesione del tuo codice mentre introduce (e incoraggia) to-trace accoppiamento , che porta in generale a una scarsa manutenzione.

Può essere fastidioso che qualcosa che prima era semplice (basta usare quella roba statica) ora richiede di trovare una risposta alla domanda a volte difficile "come faccio a ottenere quell'istanza dove ne ho bisogno?" - ma quella domanda è in realtà "in quali parti è suddiviso il mio codice e in che modo comunicano?", e se non puoi rispondere a questo, apportare grandi cambiamenti al tuo codice sarà difficile e soggetto a errori.

    
risposta data 26.06.2013 - 11:07
fonte

Leggi altre domande sui tag