Sobes.tech
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.