Junior — Middle
Lazy Singleton nümunəsinin məqsədi nədir və necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Lazy Singleton nümunəsi, sinifin tək bir nüsxəsinin yaradılması üçün nəzərdə tutulmuşdur və bu nüsxə yalnız ona ilk müraciət zamanı, yəni sinif yüklənəndə deyil, ilk dəfə müraciət edildikdə yaradılır. Bu, obyekt lazım olmaya bilərsə, resurslardan qənaət etməyə imkan verir.
Java-da gecikdirilmiş başlanğıc və sinxronizasiya istifadə edərək Lazy Singleton nümunəsi:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// xüsusi konstruktor
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Burada obyekt yalnız getInstance() ilk çağırışında yaradılır. Sinxronizasiya çox ipli mühitdə təhlükəsizliyi təmin edir, amma performansa təsir edə bilər. Bunu yaxşılaşdırmaq üçün double-checked locking və ya statik daxili sinif istifadə edilə bilər.