Sobes.tech
Junior — Middle

Kāda ir Lazy Singleton modeļa mērķis un kā tas tiek īstenots?

sobes.tech AI

Atbilde no AI

Aizmigota Singleton shablons ir paredzēts, lai izveidotu tikai vienu klases eksemplāru, un šis eksemplārs tiek inicializēts tikai pie pirmās piekļuves tam, nevis klases ielādes laikā. Tas palīdz ietaupīt resursus, ja objekts var nebūt nepieciešams.

Piemērs Lazy Singleton realizācijai Java ar atliktu inicializāciju un sinhronizāciju:

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {
        // privāts konstruktors
    }

    public static synchronized LazySingleton getInstance() {
        if (instance == null) {
            instance = new LazySingleton();
        }
        return instance;
    }
}

Šeit objekts tiek izveidots tikai pie pirmās izsaukšanas getInstance(). Sinhronizācija nodrošina drošību daudzšūnu vidē, bet var ietekmēt veiktspēju. Uzlabojumiem var izmantot double-checked locking vai statisku iekšējo klasi.