В каком слое расположен Repository

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

Ответ

Repository находится в domain layer (слой домена). Он абстрагирует источники данных (например, локальную БД или API) и предоставляет чистый интерфейс для use cases.

Пример:

interface UserRepository {
    suspend fun getUser(id: String): User
}

class UserRepositoryImpl(
    private val localDataSource: UserLocalDataSource,
    private val remoteDataSource: UserRemoteDataSource
) : UserRepository {
    override suspend fun getUser(id: String): User {
        // Логика кеширования/обновления данных
    }
}

Ключевые моменты:

  • Не зависит от фреймворков (Android, Retrofit и т.д.)
  • Содержит бизнес-логику работы с данными
  • Реализуется в data layer, но интерфейс объявляется в domain