Встречается на собеседованиях • сегодня
Чем пытаются заменить singleton в современных фреймворках
В современных фреймворках singleton заменяют dependency injection (DI) и контейнеры зависимостей. Это более гибкий и тестируемый подход, позволяющий управлять жизненным циклом объектов централизованно.
Пример с FastAPI:
python
from fastapi import Depends, FastAPI
app = FastAPI()
class Service:
def do_something(self):
return "Result"
Вместо синглтона - инжектируем зависимость
def get_service() -> Service:
return Service()
@app.get("/")
async def root(service: Service = Depends(get_service)):
return {"message": service.do_something()}
text
Преимущества DI перед singleton:
- Лучшая тестируемость (легко подменить реализацию)
- Контроль времени жизни объектов
- Четкая декларация зависимостей
- Поддержка разных контекстов выполнения
В Django аналогично используют `@lru_cache` или кастомные менеджеры зависимостей.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы