Sobes.tech
Junior — Middle

Daggerдин көзкарандысы катары белгиленген Singleton белгилери менен белгиленген Hof көзкарандысы кандайча сакталат?

sobes.tech AI

AIден жооп

Daggerде, @Singleton белгиси объекттин бир жолу гана түзүлүшүн жана бардык кийинки көзкараштарда кайра колдонулушун кепилдейт.

Кандай иштейт:

  • Dagger компоненти түзүлгөндө, ал ички кэшинде singleton үлгүлөрдү сактайт.
  • Биринчи көзкарашта @Singleton белгиси менен Dagger объект түзүп, сактайт.
  • Кийинки көзкараштарда, Dagger сакталган үлгүнү кайтарат, жаңы түзбөй.

Маанилүү, singletonдун чөйрөсү компонен менен чектелиши керек. Эгер бир нече компонент болсо, ар бири өзүнүн singleton үлгүсүнө ээ болушу мүмкүн.

Мисал:

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

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

Бул жерде MyService бир жолу AppComponent деңгээлинде түзүлүп, кайра колдонулат.