Junior — Middle
Como é que a dependência Hof, assinalada com a anotação Singleton, é mantida no âmbito da injeção de dependências do Dagger?
sobes.tech IA
Resposta da IA
No Dagger, a anotação @Singleton garante que o objeto será criado uma única vez dentro do componente (Component) e será reutilizado em todas as solicitações de dependência subsequentes.
Como funciona:
- Quando o componente Dagger é criado, ele armazena instâncias singleton em seu cache interno.
- Na primeira solicitação de dependência com a anotação @Singleton, o Dagger cria o objeto e o armazena.
- Em solicitações subsequentes do mesmo tipo, o Dagger retorna a instância armazenada em vez de criar uma nova.
É importante que o escopo do singleton seja limitado ao componente. Se houver vários componentes, cada um pode ter sua própria instância singleton.
Exemplo:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Aqui, MyService será criado uma vez ao nível do AppComponent e será reutilizado.