Sobes.tech
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.