Junior — Middle
Dagger'da bağımlılıkların kapsamı nasıl belirlenir ve buna neden ihtiyaç duyulur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dagger'da Scope (Kapsam), bağımlılıkların yaşam döngüsünü ve benzersizliğini belirler. Bu, nesnelerin yaşam süresini yönetmek ve gereksiz yeni örnekler oluşturmaktan kaçınmak için gereklidir.
Örneğin, bir bileşen ve bağımlılık sağlayıcısı aynı kapsamla işaretlenmişse, Dagger bu bağımlılığın tek bir örneğini bileşenin yaşam süresi boyunca oluşturur.
Kapsam, şunlara yardımcı olur:
- Nesneleri aynı alanda tekrar kullanmak (örneğin, oturum veya ekran).
- Bağımlılıkların oluşturulmasını ve yok edilmesini kontrol etmek.
- Bellek sızıntılarını ve aşırı kaynak tüketimini önlemek.
Kapsam tanımına örnek:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {}
@ActivityScope
@Component(modules = MyModule.class)
public interface MyComponent {
// bağımlılıklar
}
Burada, ActivityScope, bu anotasyonla işaretlenmiş tüm bağımlılıkların bileşenin yaşam döngüsü boyunca yalnızca bir kez oluşturulmasını garanti eder.