Sobes.tech
Junior — Middle

Dagger ning bog'lanishlar injektsiyasi doirasida Singleton annotatsiyasi bilan belgilangan Hof bog'liqligi qanday saqlanadi?

sobes.tech AI

AIdan javob

Daggerda, @Singleton anotasyonu, ob'ektning faqat bir marta yaratilishini va keyingi barcha bog'liqlik so'rovlarida qayta ishlatilishini kafolatlaydi.

Qanday ishlaydi:

  • Dagger komponenti yaratilganda, u ichki keshida singleton nusxalarini saqlaydi.
  • Birinchi marta @Singleton anotatsiyasi bilan bog'liq so'rovda, Dagger ob'ektni yaratadi va saqlaydi.
  • Keyingi so'rovlar uchun, Dagger saqlangan nusxani qaytaradi, yangi yaratmaydi.

Muhim nuqta, singletonning doirasi komponent bilan cheklangan. Agar bir nechta komponentlar bo'lsa, har biri o'zining singleton nusxasiga ega bo'lishi mumkin.

Misol:

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

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

Bu yerda, MyService bir marta AppComponent darajasida yaratiladi va qayta ishlatiladi.