Sobes.tech
Junior — Middle

În ce moment are loc crearea instanței Singleton?

sobes.tech AI

Răspuns de la AI

Crearea unei instanțe a modelului Singleton are loc în momentul primei solicitări către acea instanță, dacă se utilizează o metodă de inițializare leneșă (lazy).

Adică, obiectul este creat la primul apel al metodei care returnează instanța Singleton, de exemplu, getInstance(). Acest lucru permite amânarea creării obiectului până în momentul în care este necesar, economisind resurse.

Exemplu de inițializare leneșă a Singleton în Android/Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // constructor privat
    }

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

Dacă, în schimb, se utilizează inițializarea la încărcarea clasei (eager initialization), atunci instanța este creată imediat la încărcarea clasei, înainte de prima solicitare.