Sobes.tech
Junior — Middle

Pode explicar o conceito e o propósito do padrão repositório no desenvolvimento de software?

sobes.tech IA

Resposta da IA

O padrão repositório é uma camada de abstração entre a lógica de negócio da aplicação e a fonte de dados (por exemplo, um banco de dados). Ele encapsula a lógica de acesso aos dados, fornecendo uma interface conveniente para obter, adicionar, atualizar e remover objetos.

Propósito do padrão:

  • Esconder detalhes de trabalho com o banco de dados ou outros armazenamentos.
  • Fornecer uma interface unificada para trabalhar com os dados.
  • Simplificar os testes, permitindo substituir o repositório por mocks.

Exemplo em Kotlin para Android:

interface UserRepository {
    fun getUserById(id: Int): User?
    fun addUser(user: User)
}

class UserRepositoryImpl(private val userDao: UserDao) : UserRepository {
    override fun getUserById(id: Int): User? = userDao.findById(id)
    override fun addUser(user: User) = userDao.insert(user)
}

Aqui, UserRepository oculta os detalhes de trabalho com UserDao (por exemplo, Room), fornecendo uma interface simples para o restante da aplicação.