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 կամ ստատիկ ներքին դաս: