Встречается на собеседованиях • сегодня

Чем пытаются заменить 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` или кастомные менеджеры зависимостей.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы