Зачем нужен Singleton
Python
Middle
Без компании
Зачем нужен Singleton
Ответы
Singleton — это паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.
**Зачем:**
- Контроль доступа к общему ресурсу (например, конфигурации, логгеру, соединению с БД).
- Избежание дублирования инициализации (экономия памяти).
- Глобальный доступ к экземпляру без передачи его явно между компонентами.
**Пример:**
```
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 (один и тот же объект)
```
**Осторожно:**
- Может усложнить тестирование из-за глобального состояния.
- В Python чаще используют модули (они и так синглтоны) или зависимости через DI.