Junior — Middle
Mis on Lazy Singleton mustri eesmärk ja kuidas see rakendatakse?
sobes.tech AI
Vastus AI-lt
Lazy Singleton muster on mõeldud looma klassi ainulaadse eksemplari, ning see eksemplar initsialiseerub ainult esmakordsel kasutamisel, mitte klassi laadimisel. See aitab säästa ressursse, kui objekt ei pruugi olla vajalik.
Näide Lazy Singletoni rakendamisest Java-s, kasutades hilinenud initsialiseerimist ja sünkroniseerimist:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// privaatne konstruktor
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Siin luuakse objekt ainult esimese getInstance() kutsumise ajal. Sünkroniseerimine tagab turvalisuse mitme lõime keskkonnas, kuid võib mõjutada jõudlust. Parendamiseks võib kasutada double-checked locking või staatilist sisemist klassi.