Sobes.tech
Junior — Middle

Երբ է տեղի ունենում Singleton-խաղարկակի օրինակ ստեղծելը?

sobes.tech AI

Պատասխան AI-ից

Singleton նմուշի օրինակ ստեղծվում է առաջին դիմումի ժամանակ, եթե օգտագործվում է դանդաղ (lazy) սկզբնավորումը:

Այն նշանակում է, որ օբյեկտը ստեղծվում է այն ժամանակ, երբ առաջին անգամ կանչվում է այն մեթոդը, որը վերադարձնում է Singleton-ը, օրինակ, getInstance(): Սա թույլ է տալիս հետաձգել օբյեկտի ստեղծումը մինչև այն ժամանակը, երբ այն իսկապես անհրաժեշտ է, խնայելով ռեսուրսները:

Android/Java-ում Lazy Initialization օրինակ՝

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // մասնավոր կոնստրուկտոր
    }

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

Եթե փոխարենը օգտագործվում է դասի բեռնումով սկզբնավորումը (eager initialization), ապա օրինակն անմիջապես ստեղծվում է դասի բեռնումից հետո, նախքան առաջին դիմումը։