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 გარანტიას იძლევა, რომ ამ ანოტაციით აღნიშნული ყველა დამოკიდებულება მხოლოდ ერთხელ შეიქმნება კომპონენტის სიცოცხლის განმავლობაში.