Sobes.tech
Junior — Middle

Чӣ гуна вобастагии Hof, ки бо қайд кардани Singleton ишора шудааст, дар доираи ворид кардани вобастагиҳои Dagger нигоҳ дошта мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Dagger, қайднома @Singleton кафолат медиҳад, ки объект танҳо як маротиба дар доираи компонент (Component) эҷод мешавад ва дар ҳама дархостҳои минбаъдаи вобастагӣ такрор истифода мешавад.

Чӣ гуна кор мекунад:

  • Вақте ки компонент Dagger эҷод мешавад, он намунаҳои singleton-ро дар кеши дохилии худ нигоҳ медорад.
  • Дар аввалин дархости вобастагӣ бо қайднома @Singleton, Dagger объектро эҷод мекунад ва нигоҳ медорад.
  • Дар дархостҳои минбаъда барои ҳамон навъ, Dagger намунаи нигоҳдоштаро бармегардонад, на навро эҷод мекунад.

Муҳим аст, ки доираи singleton ба компонент маҳдуд бошад. Агар чанд компонент вуҷуд дошта бошад, ҳар яке метавонад намунаи singleton-и худро дошта бошад.

Масалан:

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

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

Ин ҷо MyService як маротиба дар сатҳи AppComponent эҷод мешавад ва такрор истифода мешавад.