Назад к вопросам
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.