Sì, potrebbe esserci una differenza di prestazioni. Ad esempio, se si scrivesse una classe per un Logger e in tutto il runtime dell'applicazione non si fosse mai registrato nulla, non sarebbe stato necessario inizializzare il registratore. Se hai scritto questa classe come static
, la inizializzi all'inizio del programma, indipendentemente dal fatto che tu la usi. Se dovessi crearlo come un singleton, potresti eseguire inizializzazione pigra , che risolve questo problema.
In termini di "modo preferito", da quello che ho sentito, è preferibile implementarlo come Singleton o simile se il tuo oggetto ha stato e statico se non specificato. Questo per migliorare la testabilità, perché testare un oggetto static
con stato è un problema nel calcio e non è affidabile. Ma questo è per una domanda diversa.
Nel tuo caso, con i campi, la risposta è sicuramente andare con un singleton a meno che tu non abbia una valida ragione per fare diversamente.