Junior — Middle
Como definir o escopo de dependências no Dagger e para que serve?
sobes.tech IA
Resposta da IA
No Dagger, o escopo (Scope) define o ciclo de vida e a unicidade das dependências criadas. É necessário para gerir o tempo de vida dos objetos e evitar a criação desnecessária de novas instâncias.
Por exemplo, se marcar um componente e um provedor de dependências com o mesmo escopo, o Dagger criará uma única instância dessa dependência durante toda a duração do componente.
O escopo ajuda a:
- Reutilizar objetos dentro de um mesmo âmbito (por exemplo, sessão ou tela).
- Controlar a criação e destruição de dependências.
- Evitar fugas de memória e consumo excessivo de recursos.
Exemplo de definição de escopo:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}
@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
// dependências
}
Aqui, ActivityScope garante que todas as dependências com essa anotação sejam criadas uma única vez durante o ciclo de vida do componente.