Назад к вопросам
Middle
2
Расскажи про паттерн Repository, как ты его используешь?
Компании, где спрашивали
BP
Ответ от нейросети
sobes.tech AI
Паттерн Repository служит абстракцией между бизнес-логикой и слоем доступа к данным. Он инкапсулирует логику получения и сохранения данных, позволяя менять источник данных (БД, API, файлы) без изменения остального кода.
В Python обычно создаётся класс репозитория с методами вроде get_by_id(), add(), remove(), list() и т.п. Это упрощает тестирование (можно подменить репозиторий моками) и улучшает читаемость кода.
Пример:
class UserRepository:
def __init__(self, db_session):
self.db = db_session
def get_by_id(self, user_id):
return self.db.query(User).filter(User.id == user_id).first()
def add(self, user):
self.db.add(user)
self.db.commit()
Я использую этот паттерн, чтобы отделить бизнес-логику от деталей работы с базой и облегчить поддержку и расширение приложения.