Зачем нужен репозиторий

«Зачем нужен репозиторий» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Репозиторий в Android-разработке (чаще всего подразумевается паттерн Repository) служит для абстракции источника данных (API, БД, кеша) от остального кода.

Основные преимущества:

  • Единая точка доступа к данным
  • Сокрытие сложности работы с разными источниками
  • Упрощение тестирования (можно подменить реализацию)
  • Централизованное управление кешированием

Пример:

class UserRepository(
    private val api: UserApi,
    private val db: UserDatabase
) {
    suspend fun getUsers(): List<User> {
        val cached = db.getUsers()
        return if (cached.isEmpty()) {
            val fresh = api.getUsers()
            db.insertUsers(fresh)
            fresh
        } else cached
    }
}