Quote Originariamente inviata da Ansharja Visualizza il messaggio
Per il momento a tutte le classi che devono leggere una o più preferenze viene passato il reference di quell'istanza creata all'inizio, per evitare di creare una nuova istanza e rileggere inutilmente il file.

Questo però comporta una catena di passaggi di quel reference, anche a classi intermedie che non se ne fanno nulla
Lo dico solo per completezza: in scenari del genere, potrebbe essere utile sfruttare un framework apposito per la DI (Dependency Injection). Ma credo e capisco che magari nel tuo caso è sicuramente out of scope.

Quote Originariamente inviata da Ansharja Visualizza il messaggio
e mi chiedevo se non fosse meglio in questo caso utilizzare campi statici per modellare le preferenze, e accedervi di volta in volta con Preferences.getXXX().
Metodi statici così per le singole preferenze, no non sarebbe molto buono. Ma la classe delle preferenze potrebbe essere un "singleton" di cui puoi tirare fuori la (unica) istanza con un getInstance() statico.

Preferences.getInstance().getDatoXyz()

Questo sì. Poi come implementare il singleton ... dipende. Il pattern Singleton ha svariate varianti, dipende se deve essere creato subito quando viene caricata la classe oppure in modo "lazy" al primo uso e se è necessario considerare la concorrenza sul multi-threading oppure no.