Para tornar a sua aplicação Android mais fácil de se manter e escalar, uma boa prática é utilizar injeção de dependências.
Mas podemos cair uma situação onde duas ou mais classes implementam uma mesma interface.
Sendo assim o koin não sabe qual classe deve injetar. Para resolvermos essa situação utilizamos os Qualifiers.
Para utilizar-mos é muito simples, basta criarmos os qualifiers
val qualifier1 = object: Qualifier{}
val qualifier2 = object: Qualifier{}
.....
Com os nossos qualifiers criados, atribuimos eles aos nossos Beans
val modulo = module {
single(qualifier1) {
loadRepositorio1()
}
single(qualifier2) {
loadRepositorio2()
}
}
Tendo os nossos Beans devidamente qualificados, basta utilizarmos eles.
val viewModelModule = module {
viewModel {
Classe1(get(), get(qualifier1))
}
viewModel {
Classe1(get(), get(qualifier1), get())
}
}
0 comentários