Sobes.tech
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.