Sobes.tech
Junior — Middle

Lazy Singleton паттернин максаты эмне жана ал кандай ишке ашырылат?

sobes.tech AI

AIден жооп

Lazy Singleton үлгісі бір кластың бір ғана мысалын жасау үшін арналған, және бұл мысал тек бірінші рет оған жүгінгенде, яғни класты жүктеген кезде емес, алғашқы қол жеткізуде ғана инициалданады. Бұл ресурстарды үнемдеуге көмектеседі, егер объект қажет болмаса.

Java-да Lazy Singleton-ды жүзеге асыру мысалы, кешіктірілген инициализация және синхрондау арқылы:

public class LazySingleton {
    private static LazySingleton instance;

    private LazySingleton() {
        // жеке конструктор
    }

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

Мұнда объект тек getInstance() бірінші шақырылғанда жасалады. Синхрондау көп ағынды ортада қауіпсіздікті қамтамасыз етеді, бірақ өнімділікке әсер етуі мүмкін. Оны жақсарту үшін double-checked locking немесе статикалық ішкі класс қолданылуы мүмкін.