Sobes.tech
Junior — Middle

Чӣ тавр ҳудуди вобастагиро дар Dagger муайян кардан ва чаро он зарур аст?

sobes.tech AI

Ҷавоб аз AI

Дар Dagger, ҳудуд (Scope) муайян мекунад, ки ҳаёти ва ягонагии вобастагиҳои сохташударо. Ин барои идора кардани вақти ҳаёти объектҳо ва пешгирӣ аз тавлиди нолозимии нусхаҳои нав зарур аст.

Масалан, агар компонент ва таъминкунандаи вобастагӣ бо ҳамон ҳудуд ишора карда шаванд, Dagger як нусхаи ягонаи ин вобастагиро дар тамоми муҳлати ҳаёти компоненти сохта хоҳад кард.

Ҳудуд кӯмак мекунад:

  • Объектҳоро дар дохили як минтақа (масалан, сессия ё экран) такрор истифода бурдан.
  • Назорат кардани тавлид ва нобуд кардани вобастагиҳо.
  • Аз раҳоии хотира ва истеъмоли зиёди захираҳо пешгирӣ кардан.

Масали муайян кардани ҳудуд:

@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}

@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
    // вобастагиҳо
}

Ин ҷо, ActivityScope кафолат медиҳад, ки ҳама вобастагиҳо бо ин анотация танҳо як маротиба дар давоми ҳаёти компоненти сохта мешаванд.