Sobes.tech
Junior — Middle

Pode explicar o que significa o padrão de injeção de dependências na programação?

sobes.tech IA

Resposta da IA

O padrão de injeção de dependências (Dependency Injection, DI) é uma forma de organizar o código na qual um objeto recebe as suas dependências (por exemplo, outros objetos ou serviços) de fora, em vez de as criar por si próprio. Isto aumenta a modularidade, facilita os testes e simplifica a substituição de componentes.

Por exemplo, em vez de uma classe criar dentro de si um objeto de base de dados, ela recebe-o através do construtor ou de um setter:

class UserRepository(private val database: Database) {
    fun getUser(id: String) = database.queryUser(id)
}

// Ao criar o objeto UserRepository, passamos uma implementação concreta de Database
val db = SqlDatabase()
val repo = UserRepository(db)

Esta abordagem permite trocar facilmente as dependências, por exemplo, por objetos simulados (mocks) durante os testes.