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.