Si potrebbe evitare di utilizzare completamente un blocco di inizializzazione statica utilizzando il seguente codice:
private static final ApiKey API_KEY = new ApiKey();
o
private static final ApiKey API_KEY = createNewApiKey();
se la creazione chiave API richiede più di una semplice chiamata al costruttore. Ciò rende il codice più leggibile, IMHO. Ma non importa molto.
L'inizializzatore statico è utile quando due campi statici dipendono stesso codice di inizializzazione:
static {
// compute some values
A = somePartOfTheComputedValues();
B = someOtherPartOfTheComputedValues();
}
Ma anche allora, A e B potrebbero eventualmente riscritta in un unico oggetto, che si verrebbe a creare in una singola metodo.
fonte
2012-02-19 09:40:14
io commento, perché non v'è alcuna risposta "bianco o nero" per la tua domanda. Personalmente, non trovo l'accessor statico un buon amico dei programmatori.L'iniezione di dipendenza è un'alternativa molto interessante che aiuta molto quando si tratta di test. –
Ho visto un codice in cui sono stati avviati nuovi thread nel blocco statico. :) E 'stato molto brutto. –