Sobes.tech
Junior — Middle

Mikor történik a Singleton példányának létrehozása?

sobes.tech MI

Válasz az MI-től

A Singleton-minta példányának létrehozása az első hozzáférés pillanatában történik, ha késleltetett (lazy) inicializálási módszert alkalmaznak.

Vagyis, az objektum az első olyan híváskor jön létre, amely visszaadja a Singleton példányát, például a getInstance() metódus hívásakor. Ez lehetővé teszi az objektum létrehozásának késleltetését a szükségességig, így erőforrásokat takarít meg.

Lazy inicializáció példája Android/Java környezetben:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // privát konstruktor
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Ha viszont a osztály betöltésekor történő inicializálást (eager initialization) alkalmazzuk, akkor az példány az osztály betöltésekor jön létre, még mielőtt első alkalommal hozzáférnénk.