Sobes.tech
Back to questions
Junior — Middle
91

В чем заключается назначение паттерна Singleton в программной архитектуре?

Answer from AI

sobes.tech AI

Паттерн Singleton предназначен для обеспечения существования только одного экземпляра класса в приложении. Это полезно, когда нужно централизованно управлять доступом к какому-либо ресурсу, например, к базе данных или конфигурации.

Основные характеристики Singleton:

  • Гарантирует единственный экземпляр класса.
  • Предоставляет глобальную точку доступа к этому экземпляру.

Пример на PHP:

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();

Таким образом, Singleton помогает контролировать создание объектов и предотвращает дублирование ресурсов.