Junior — Middle
Оё метавонед шарҳ диҳед, ки чӣ гуна намунаи Singleton амалӣ карда мешавад ва чӣ гуна он як нусхаи ягонаи синфро таъмин мекунад?
sobes.tech AI
Ҷавоб аз AI
Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Как реализуется Singleton в PHP:
- Создается приватное статическое свойство для хранения экземпляра класса.
- Конструктор делается приватным или защищённым, чтобы предотвратить создание объектов извне.
- Создается публичный статический метод (обычно getInstance()), который проверяет, создан ли уже экземпляр, и если нет — создает его, затем возвращает.
Пример:
class Singleton {
private static $instance = null;
private function __construct() {
// приватный конструктор
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
// запрет клонирования
private function __clone() {}
// запрет десериализации
private function __wakeup() {}
}
// Использование
$singleton = Singleton::getInstance();
Таким образом, класс контролирует создание своего единственного экземпляра и не позволяет создавать новые объекты напрямую.