Junior — Middle
102
Можешь ли ты объяснить концепцию паттерна Singleton и привести пример его использования?
Ответ от нейросети
sobes.tech AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. Это полезно, когда нужно контролировать доступ к какому-то ресурсу, например, к базе данных или конфигурации.
В PHP Singleton обычно реализуется через приватный конструктор, статическое свойство для хранения экземпляра и статический метод для получения этого экземпляра:
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;
}
public function doSomething() {
echo "Выполняю действие";
}
}
// Использование:
$singleton = Singleton::getInstance();
$singleton->doSomething();
Такой подход гарантирует, что объект создастся только один раз, и везде в коде будет использоваться один и тот же экземпляр.