Wzorzec Singleton z metodą get() - co tu się dzieje?

0

Witajcie,
co dokładnie dzieje się w tym kodzie linijka po linijce? Próbuje zrozumieć ten wzorzec Singleton z metodą get().

public class CrimeLab {
    
    private static CrimeLab sCrimeLab;
    public static CrimeLab get(Context context) {
        if (sCrimeLab == null) {
            sCrimeLab = new CrimeLab(context);
        }
        
        return sCrimeLab;
    }
    
    private CrimeLab (Context context) {
        
    }
}

0

"Prawie" najbardziej klasyczny signleton, WIELE opisów w sieci.

Nie podoba mi się Context w konstruktorze. Ta jedyna instancja klasy jest/może być "skażona" pierwszym wywołaniem. Skąd masz ten kod?
Zasadniczo dodaje się synchronizację, choć na androidze <może> przez się nie wywróci.

0

Konstruktor ustawiony na private, przez co poza klasą nie możesz utworzyć instancji obiektu, niż metodą get, która z kolei sprawdza czy nie ma już instancji, jeżeli nie, tworzony jest obiekt. Krótko mówiąc, Singleton oznacza jedną instancję klasy w kodzie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1