Что такое паттерн 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 (один и тот же объект)
```
**Применение:**
- Логирование (единый логгер).
- Конфигурация приложения.
- Подключение к БД.
**Минусы:**
- Усложняет тестирование (глобальное состояние).
- Нарушает принцип единственной ответственности.