Sto cercando di spostare tutto nella mia app lontano dai singleton, perché sono stato reso consapevole che si tratta di una cattiva pratica di programmazione, con ciò detto, sto cercando di implementare l'iniezione delle dipendenze di Dagger 2. E mi chiedo, quando fai @Singleton in Dagger 2 quel thread è sincronizzato? se no, come posso sincronizzarlo, quindi non capisco anomalie di dati strani da più thread che toccano le stesse cose.è @Singleton in Dagger 2 thread safe?
Quando stavo creando singletons prima avrei fatto qualcosa di simile:
public class SomeSinglton {
private static ClassName sInstance;
private SomeSinglton() {
}
public static synchronized ClassName getInstance() {
if (sInstance == null) {
sInstance = new ClassName();
}
return sInstance;
}
è l'equivalente Dagger 2 @Singleton quanto viene sincronizzato?
sei sicuro che il metodo deve essere sincronizzato e non sIntance? Forse ho sbagliato, ma sulla base della mia esperienza direi che la sincronizzazione non è nel posto giusto, ma se ho torto, voglio sapere perché –