Middle+
Quais são as principais diferenças entre as anotações SubComponents e Component no Dagger?
sobes.tech IA
Resposta da IA
@Component
interface AppComponent {
// ...
}
@Subcomponent
interface UserComponent {
// ...
}
// Exemplo de uso de Subcomponent em AppComponent
@Component(modules = AppModules.class)
interface AppComponent {
UserComponent userComponent(); // Adicionando um método de fábrica
}
Component:
- Grafo de dependências auto-suficiente.
- Pode ser um componente raiz ou uma dependência para outros componentes (usando
dependencies). - Criado através de um método de fábrica (
create()ou builder) numa interface anotada.
Subcomponent:
- Estende o grafo do componente pai.
- Tem acesso a todas as dependências fornecidas pelo componente pai.
- Não possui suas próprias dependências (através de
dependencies). - Criado pelo componente pai através de um método de fábrica.
- Permite criar grafos mais modulares e geríveis.