Sobes.tech
Назад к вопросам
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()

Я использую этот паттерн, чтобы отделить бизнес-логику от деталей работы с базой и облегчить поддержку и расширение приложения.