Sobes.tech
Junior — Middle

Hogyan határozzuk meg a függőségek hatókörét a Dagger-ben, és miért van rá szükség?

sobes.tech MI

Válasz az MI-től

A Dagger-ben a Scope (Hatókör) meghatározza a létrehozott függőségek életciklusát és egyedülállóságát. Ez szükséges az objektumok élettartamának kezeléséhez és a szükségtelen új példányok létrehozásának elkerüléséhez.

Például, ha egy komponens és egy függőség szolgáltató ugyanazzal a hatókörrel van megjelölve, a Dagger egyetlen példányt hoz létre ebből a függőségből a komponens teljes élettartama alatt.

A hatókör segít:

  • Objektumok újrafelhasználásában ugyanazon a területen (pl. munkamenet vagy képernyő).
  • A függőségek létrehozásának és megsemmisítésének irányításában.
  • Memóriaszivárgások és túlzott erőforrás-felhasználás elkerülésében.

Hatókör meghatározásának példája:

@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}

@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
    // függőségek
}

Itt az ActivityScope garantálja, hogy minden, ezzel a annotációval ellátott függőség csak egyszer legyen létrehozva a komponens életciklusa során.