Junior — Middle
Hof bağımlılığı, Singleton anotasyonu ile işaretlenmiş olan, Dagger'ın bağımlılık enjeksiyonu kapsamında nasıl korunur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dagger'da, @Singleton anotasyonu, nesnenin yalnızca bileşen (Component) kapsamında bir kez oluşturulmasını ve tüm sonraki bağımlılık taleplerinde yeniden kullanılmasını sağlar.
Nasıl çalışır:
- Dagger bileşeni oluşturulduğunda, iç önbelleğinde singleton örnekleri saklar.
- @Singleton anotasyonu ile ilk bağımlılık talebinde, Dagger nesneyi oluşturur ve saklar.
- Aynı türdeki sonraki taleplerde, Dagger saklanan örneği döndürür, yeni bir şey oluşturmaz.
Önemli olan, singleton kapsamının bileşenle sınırlı olmasıdır. Birden fazla bileşen varsa, her biri kendi singleton örneğine sahip olabilir.
Örnek:
@Singleton
@Component
interface AppComponent {
MyService getMyService();
}
@Singleton
class MyService {
@Inject
MyService() {}
}
Burada, MyService bir kez AppComponent seviyesinde oluşturulur ve yeniden kullanılır.