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.