Sobes.tech
Junior — Middle

Ҳадафи асосии намунаи Singleton чист ва дар кадом ҳолатҳо истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

Шаблони Singleton таъмин мекунад, ки дар класа танҳо як нусха вуҷуд дошта бошад ва дастрасии глобалӣ ба он нусха пешниҳод мекунад. Ин дар ҳолатҳое муфид аст, ки бояд дастрасиро ба манбаъе, мисли базаи додаҳо, танзимоти барнома ё логгер назорат кард.

Singleton истифода мешавад, вақте:

  • Даркор аст, ки эҷоди объектҳо ба як нусха маҳдуд карда шавад.
  • Назорати марказонидашудаи ҳолат ё манбаъҳо зарур аст.
  • Бояд дастрасии глобалӣ ба объект таъмин карда шавад бе гузаронидани он ҳамчун параметр.

Маслиҳат дар PHP:

class Singleton {
    private static ?Singleton $instance = null;

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

    public static function getInstance(): Singleton {
        if (self::$instance === null) {
            self::$instance = new Singleton();
        }
        return self::$instance;
    }
}

// Истифода
$instance = Singleton::getInstance();