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.