Sobes.tech
Junior — Middle

Kaip įgyvendinti vėlyvą Singleton modelio inicializaciją?

sobes.tech AI

Atsakymas iš AI

Lėtasis Singleton inicializavimas Java leidžia sukurti klasės egzempliorių tik pirmojo kreipimosi metu, taupant išteklius. Vienas iš dažniausiai naudojamų būdų yra naudoti vidinį statinį klasės tipą:

public class Singleton {
    private Singleton() {
        // privačios konstrukcijos
    }

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

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

Čia, klasė Holder yra įkelta ir inicijuojama tik pirmo kvietimo getInstance() metu, užtikrinant srautų saugumą ir lazy inicializaciją be sinchronizacijos.