Sobes.tech
Junior — Middle

Kaip įgyvendinti Singleton modelį Java kalboje?

sobes.tech AI

Atsakymas iš AI

Singleton šablonas užtikrina, kad klasėje būtų tik viena egzempliorius ir suteikia globalų prieigos tašką prie jo.

Java tai galima įgyvendinti keliais būdais. Vienas paprastas ir srauto saugus būdas yra naudoti vėlyvą inicializaciją su synchronized raktiniu žodžiu arba naudoti statinį vidinį klasę.

Pavyzdys naudojant statinę vidinę klasę:

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

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

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

Šis požiūris garantuoja, kad egzempliorius bus sukurtas tik pirmo getInstance() iškvietimo metu ir yra srauto saugus be synchronized naudojimo.