Sobes.tech
Junior
131
questionbank

Для чего используется паттерн Синглтон?

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

sobes.tech AI

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

  • Работы с базой данных (единственное соединение).
  • Управления конфигурацией приложения.
  • Логгирования (единственный экземпляр логгера).

Пример реализации:

<?php

class Singleton {
    private static ?self $instance = null;

    private function __construct() {
        // Приватный конструктор предотвращает создание новых экземпляров извне
    }

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

    private function __wakeup() {
        // Запрет десериализации экземпляра
    }

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

    public function someMethod() {
        // Логика работы экземпляра
        return "Привет из Синглтона!";
    }
}

// Получение экземпляра
$singleton1 = Singleton::getInstance();
$singleton2 = Singleton::getInstance();

// $singleton1 and $singleton2 указывают на один и тот же объект
// var_dump($singleton1 === $singleton2); // true echo $singleton1->someMethod(); // Привет из Синглтона!