Что такое паттерн Singleton

Python Middle Без компании
Что такое паттерн Singleton
Ответы
Singleton — это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему. **Основные особенности:** - Конструктор класса делается приватным, чтобы предотвратить создание новых экземпляров. - Создание экземпляра происходит внутри класса (обычно через статический метод). **Пример на Python:** ``` class Singleton: _instance = None def __new__(cls): if cls._instance is None: cls._instance = super().__new__(cls) return cls._instance # Использование obj1 = Singleton() obj2 = Singleton() print(obj1 is obj2) # True (один и тот же объект) ``` **Применение:** - Логирование (единый логгер). - Конфигурация приложения. - Подключение к БД. **Минусы:** - Усложняет тестирование (глобальное состояние). - Нарушает принцип единственной ответственности.