Junior — Middle
Aký je účel vzoru Lazy Singleton a ako sa implementuje?
sobes.tech AI
Odpoveď od AI
Vzor Lazy Singleton je navrhnutý tak, aby vytvoril jediný výtlačok triedy, pričom tento výtlačok je inicializovaný iba pri prvom prístupe k nemu, nie pri načítaní triedy. To pomáha šetriť zdroje, ak objekt nemusí byť potrebný.
Príklad implementácie Lazy Singleton v Jave s použitím odloženého inicializovania a synchronizácie:
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {
// súkromný konštruktor
}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
Tu sa objekt vytvára iba pri prvom volaní getInstance(). Synchronizácia zabezpečuje bezpečnosť v prostredí s viacerými vláknami, ale môže ovplyvniť výkon. Na zlepšenie sa môže použiť double-checked locking alebo statická vnútorná trieda.