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;
    }
}

Այստեղ օբյեկտը ստեղծվում է միայն առաջին զանգի ժամանակ: Սինխրոնիզացիան ապահովում է բազմաթելային միջավայրում անվտանգություն, բայց կարող է ազդել կատարողականության վրա: Բարելավելու համար կարելի է օգտագործել double-checked locking կամ ստատիկ ներքին դաս: