Sobes.tech
Junior — Middle

консепти паттерни Singleton ва истифодаи он дар барномасозӣро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Модели singleton гарантирай, ки дар класа танҳо як намуна вуҷуд дорад ва нуқтаи дастрасии глобалӣ ба он таъмин мекунад.

Ин вақте истифода мешавад, ки лозим аст, ки дастрасиро ба захираҳо назорат кунед, масалан, ба базаи додаҳо, логгер ё конфигуратсия.

Масалан дар C#:

public class Singleton
{
    private static Singleton _instance;
    private static readonly object _lock = new object();

    // Конструктори хусусӣ аз эҷоди намунаҳо берун монеъ мешавад
    private Singleton() { }

    public static Singleton Instance
    {
        get
        {
            if (_instance == null)
            {
                lock (_lock)
                {
                    if (_instance == null)
                    {
                        _instance = new Singleton();
                    }
                }
            }
            return _instance;
        }
    }

    public void DoSomething()
    {
        // Логика
    }
}

Ин усул бехатариро дар муҳитҳои бисёрсӯзишворӣ таъмин мекунад ва оғозёбии бефосилаи намунаи singleton-ро имкон медиҳад.