single ve factory
- Kotlin kursu
- İleri seviye
- Ders 39/83
- 5 dk
single ve factory ile bağlam türlerini öğrenirsin.
single ve factory
single ve factory, Koin'de bağımlılığın yaşam süresini belirleyen iki tanımdır. single tek örnek, factory her seferinde yeni örnek verir.
Örnek: single { Repository() } tüm uygulama boyunca aynı Repository örneğini döndürür. factory { Service() } her çağrıda yeni bir Service oluşturur. single durum bilgisi olan nesneler için uygundur; factory hafif ve bağımsız nesneler için. Yanlış seçim bellek sızıntısına ya da gereksiz yeniden oluşturmaya yol açar.
Ne zaman single, ne zaman factory?
Bir bağımlılık durum bilgisi tutuyorsa ve uygulama boyunca paylaşılacaksa single seçilir. Örn. veritabanı bağlantısı, oturum bilgisi.
Hafif, bağımsız ve kısa ömürlü nesneler için factory uygundur. Örn. her istekte yeni bir view model, her tıklamada yeni bir istek nesnesi. single yanlış kullanılırsa bağımlılıklar birbirini etkileyebilir; factory yanlış kullanılırsa gereksiz bellek yükü doğar. Karar verirken bağımlılığın doğasına bakılır.
Uygulama single ile Repository tanımla
val appModule = module { single { Repository() } } tanımla. Ayrıca class Repository tanımla. main içinde println("Single hazır") yazdır.
Başlangıç kodu
// single ve factory
// buraya yaz
import org.koin.dsl.module
fun main() {
}Örnek çözüm
class Repository
val appModule = module {
single { Repository() }
}
fun main() {
println("Single hazır")
}Beklenen çıktı
Single hazır
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 single ve factory eşle
| Kavram | Anlamı |
|---|---|
single |
Tek örnek |
factory |
Her seferinde yeni |
module |
Bağımlılık bloğu |
get |
Başka bağımlılık |
2 Veritabanı bağlantısı için hangisi uygundur?
- factory
- single Doğru cevap
- neither
- both
Açıklama: Veritabanı bağlantısı single ile tek örnek olur.
3 single çağrısını tamamla
val appModule = module {
____ { Repository() }
}
val appModule = module {
single { Repository() }
}
Açıklama: single ile tek örnek tanımlanır.