Sobes.tech
Junior — Middle

Dagger-də asılılıqların sahəsini necə müəyyən etmək və ona nə üçün ehtiyac var?

sobes.tech Süni İntellekt

AI-dan cavab

Dagger-də Scope (Əhatə dairəsi) yaradılan asılılıqların həyat dövrünü və unikalığını müəyyən edir. Bu, obyektlərin həyat müddətini idarə etmək və lazımsız yeni nümunələrin yaradılmasından qaçınmaq üçün vacibdir.

Məsələn, əgər komponent və asılılıq təminatçısı eyni əhatə dairəsi ilə işarələnibsə, Dagger bu asılılığın tək nümunəsini bütün komponentin həyat dövrü boyunca yaradacaq.

Əhatə dairəsi kömək edir:

  • Eyni sahədə (məsələn, sessiya və ya ekran) obyektləri təkrar istifadə etmək.
  • Asılılıqların yaradılması və məhvinə nəzarət etmək.
  • Yaddaş sızıntılarını və resursların artıq istifadəsini qarşısını almaq.

Əhatə dairəsinin tərifi nümunəsi:

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

@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
    // asılılıqlar
}

Burada, ActivityScope bu annotasiya ilə işarələnmiş bütün asılılıqların komponentin həyat dövrü boyunca yalnız bir dəfə yaradılmasını təmin edir.