Junior — Middle
Jak určit rozsah závislostí v Daggeru a k čemu je potřeba?
sobes.tech AI
Odpověď od AI
V Daggeru určuje Scope (rozsah) životní cyklus a jedinečnost vytvářených závislostí. Je nezbytné pro správu doby života objektů a zabránění zbytečnému vytváření nových instancí.
Například, pokud označíme komponentu a poskytovatele závislostí stejným rozsahem, Dagger vytvoří jedinou instanci této závislosti po celou dobu života komponenty.
Rozsah pomáhá:
- Opakovaně používat objekty v rámci stejného rozsahu (například relace nebo obrazovka).
- Kontrolovat tvorbu a zničení závislostí.
- Vyhýbat se únikům paměti a nadměrnému využívání zdrojů.
Příklad definice rozsahu:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}
@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
// závislosti
}
Zde ActivityScope zaručuje, že všechny závislosti s touto anotací budou vytvořeny pouze jednou během životního cyklu komponenty.