Sobes.tech
Junior — Middle

Por que é importante criar interfaces para fontes de dados remotas no sistema?

sobes.tech IA

Resposta da IA

Criar interfaces para fontes de dados remotas é importante por várias razões:

  • Abstração e isolamento: A interface oculta detalhes de implementação, permitindo alterar a fonte de dados (por exemplo, de REST API para GraphQL ou base de dados local) sem alterar o restante do código.
  • Testabilidade: Através da interface, é fácil substituir objetos simulados para testes unitários, o que simplifica a verificação da lógica de negócio sem conexão real à rede.
  • Manutenção: Um contrato de interação claramente definido facilita a compreensão e manutenção do código.
  • Flexibilidade: Permite implementar diferentes opções de obtenção de dados (cache, rede, base de dados) com uma mesma interface.

Exemplo de interface em Kotlin para uma fonte de dados remota:

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

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