Sobes.tech
Junior — Middle

Dagger-in asılılıq injeksiyası çərçivəsində Singleton qeydiyyatı ilə işarələnmiş Hof asılılığı necə saxlanılır?

sobes.tech Süni İntellekt

AI-dan cavab

Dagger-də @Singleton annotasiyası, obyektin yalnızca komponent (Component) daxilində bir dəfə yaradılmasını və bütün növbəti asılılıq tələblərində yenidən istifadə olunmasını təmin edir.

Necə işləyir:

  • Dagger komponenti yaradıldıqda, daxili keşi içində singleton nümunələrini saxlayır.
  • @Singleton annotasiyası ilə ilk asılılıq tələbində, Dagger obyekt yaradır və saxlayır.
  • Sonrakı tələblərdə, Dagger saxlanılan nümunəni geri qaytarır, yeni nümunə yaratmır.

Əhəmiyyətli olan, singletonun sahəsinin komponentlə məhdudlaşmasıdır. Əgər bir neçə komponent varsa, hər biri öz singleton nümunəsinə sahib ola bilər.

Nümunə:

@Singleton
@Component
interface AppComponent {
    MyService getMyService();
}

@Singleton
class MyService {
    @Inject
    MyService() {}
}

Burada, MyService bir dəfə AppComponent səviyyəsində yaradılır və yenidən istifadə olunur.