Ответ
Singleton — это порождающий шаблон проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.
Ключевые особенности:
- Приватный конструктор (чтобы нельзя было создать экземпляр извне).
- Статический метод для получения экземпляра (обычно
getInstance()). - Ленивая инициализация (создание объекта при первом вызове).
Пример на PHP:
class Singleton {
private static $instance = null;
private function __construct() {} // Запрещаем создание через new
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}
$singleton1 = Singleton::getInstance();
$singleton2 = Singleton::getInstance();
var_dump($singleton1 === $singleton2); // true (один и тот же объект)
Использование:
- Логирование, конфигурация, подключение к БД.
Осторожно: - Может усложнить тестирование (глобальное состояние).
- В многопоточной среде требует защиты от race condition.
Видео-ответы
▶
Собеседование в МТС: Middle Java с лайв-кодингом
▶
Джун был тимлидом, разрабатывал телеграм ботов и стал миддлом? / Техсобес Middle Python Developer
▶
iOS Мок Интервью Middle разработчика - Федор
▶
Собеседование Middle Python Developer на $2000 #6
▶
iOS Мок Интервью Junior разработчика - Анастасия
▶
Собеседование Trainee Python Developer
▶
Собеседование подписчика Trainee Python Developer
▶
Собеседование Junior Python Developer
▶
PYTHON JUNIOR интервью со SpaciX
▶
Собеседование Trainee Python Developer
▶
Собеседование: Swift (iOS-разработка) / Вопросы и ответы
▶
FRONT-END РАЗРАБОТЧИК: Как пройти СОБЕСЕДОВАНИЕ?
▶
Публичное собеседование iOS-разработчика | Петя Коренев и Андрей Галушка