Sobes.tech
Back to questions
Junior — Middle
79

Почему важно создавать интерфейсы для удалённых источников данных в системе?

Answer from AI

sobes.tech AI

Создание интерфейсов для удалённых источников данных важно по нескольким причинам:

  • Абстракция и изоляция: Интерфейс скрывает детали реализации, позволяя менять источник данных (например, с REST API на GraphQL или локальную базу) без изменения остального кода.
  • Тестируемость: Через интерфейс легко подставлять мок-объекты для юнит-тестов, что упрощает проверку бизнес-логики без реального подключения к сети.
  • Поддерживаемость: Чётко определённый контракт взаимодействия упрощает понимание и поддержку кода.
  • Гибкость: Позволяет реализовывать разные варианты получения данных (кэш, сеть, база) с одинаковым интерфейсом.

Пример интерфейса на Kotlin для удалённого источника данных:

interface RemoteDataSource {
    suspend fun fetchData(): List<DataItem>
}

class ApiRemoteDataSource(private val apiService: ApiService) : RemoteDataSource {
    override suspend fun fetchData(): List<DataItem> {
        return apiService.getData()
    }
}