Junior — Middle
Qual è lo scopo del pattern Lazy Singleton e come viene implementato?
sobes.tech AI
Risposta dell'AI
Il pattern Lazy Singleton è progettato per creare un'unica istanza di una classe, e questa istanza viene inizializzata solo al primo accesso, non al caricamento della classe. Questo permette di risparmiare risorse se l'oggetto potrebbe non essere necessario.
Esempio di implementazione del Lazy Singleton in Java usando inizializzazione differita e sincronizzazione:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// costruttore privato
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Qui, l'oggetto viene creato solo alla prima chiamata di getInstance(). La sincronizzazione garantisce la sicurezza in ambienti multithread, ma può influire sulle prestazioni. Per migliorare, si può usare il doppio controllo di blocco (double-checked locking) o una classe interna statica.