Escolha uma Página

Usando Qualifiers para injeção de dependencia com Koin

Escrito por Alisson

agosto 22, 2023

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())
    }
}

Você pode gostar…

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *