Sobes.tech
Назад к вопросам
Junior — Middle
99

Каким образом реализуется гарантированное создание только одного экземпляра класса Singleton?

Компании, где спрашивали
ИНДИНС

Ответ от нейросети

sobes.tech AI

Для гарантированного создания только одного экземпляра класса Singleton в PHP обычно используют:

  • Приватный конструктор, чтобы предотвратить создание экземпляров извне.
  • Статическое приватное свойство, хранящее единственный экземпляр.
  • Публичный статический метод (например, getInstance()), который возвращает этот экземпляр, создавая его при первом вызове.

Пример реализации Singleton в PHP:

class Singleton {
    private static $instance = null;

    private function __construct() {
        // приватный конструктор
    }

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

    private function __clone() {
        // запрет клонирования
    }

    private function __wakeup() {
        // запрет десериализации
    }
}

// Использование:
$singleton = Singleton::getInstance();

Такой подход гарантирует, что в приложении будет только один экземпляр класса Singleton.