Sobes.tech
Junior — Middle

Дар кадом лаҳзаи сохтани намунаи Singleton рух медиҳад?

sobes.tech AI

Ҷавоб аз AI

Эҷоди намунаи Singleton дар лаҳзаи аввалин муроҷиат ба он рӯй медиҳад, агар усули суст (lazy) оғозёбӣ истифода шавад.

Яъне, объект дар даъвати аввалини методе, ки намунаи Singleton-ро бармегардонад, масалан getInstance(), эҷод мешавад. Ин имкон медиҳад, ки эҷоди объектро то вақти зарурӣ таъхир кард, ки ин захираҳоро сарфа мекунад.

Масали суст оғозёбии Singleton дар Android/Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // конструктори хусусӣ
    }

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

Агар ба ҷои ин, оғозёбии дар вақти боркунии синф (eager initialization) истифода шавад, пас намуна фавран дар вақти боркунии синф эҷод мешавад, пеш аз муроҷиатҳои аввалин.