Sobes.tech
Junior — Middle

Kā īstenot Lazy inicializāciju Singleton modeļa?

sobes.tech AI

Atbilde no AI

Aizkavēta Singleton inicializācija Java ļauj izveidot klases eksemplāru tikai pirmajā piekļūšanas reizē, taupot resursus. Viens no biežāk izmantotajiem veidiem ir izmantot iekšējo statisko klasi:

public class Singleton {
    private Singleton() {
        // privāts konstruktors
    }

    private static class Holder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }
}

Šeit klase Holder tiek ielādēta un inicializēta tikai pie pirmās izsaukšanas metodes getInstance(), nodrošinot pavedienu drošību un lazy inicializāciju bez sinhronizācijas.