Junior — Middle
Koja je svrha Lazy Singleton paterna i kako se implementira?
sobes.tech АИ
Одговор од АИ
Lazy Singleton obrazac je namenjen za kreiranje jednog jedinstvenog primera klase, pri čemu se taj primer inicijalizuje samo pri prvom pristupu, a ne pri učitavanju klase. Ovo pomaže u uštedi resursa ako objekat možda neće biti potreban.
Primer implementacije Lazy Singleton u Javi koristeći odloženu inicijalizaciju i sinhronizaciju:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// privatni konstruktor
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Ovde se objekat kreira samo pri prvom pozivu getInstance(). Sinhronizacija obezbeđuje sigurnost u višedretvenim okruženjima, ali može uticati na performanse. Za poboljšanje, može se koristiti double-checked locking ili statička unutrašnja klasa.