Junior — Middle
Kokia yra Lazy Singleton šablono paskirtis ir kaip jis įgyvendinamas?
sobes.tech AI
Atsakymas iš AI
Vėlyvojo singleton modelis skirtas sukurti vieną klasės egzempliorių, ir šis egzempliorius inicijuojamas tik pirmojo kreipimosi metu, o ne klasės įkėlimo metu. Tai padeda taupyti išteklius, jei objektas gali būti nereikalingas.
Pavyzdys, kaip įgyvendinti Lazy Singleton Java kalba naudojant vėlavimą inicializaciją ir sinchronizaciją:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// privačios konstruktorius
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Čia objektas sukuriamas tik pirmo kvietimo getInstance() metu. Sinchronizacija užtikrina saugumą daugiagijame aplinkoje, tačiau gali paveikti našumą. Pagerinti galima naudojant double-checked locking arba statinę vidinę klasę.