Junior — Middle
Kotlin'de sealed class'ın avantajları ve kullanım senaryoları nelerdir biliyor musun?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de sealed sınıf, kalıtım hiyerarşisini sınırlamak için kullanılır. Tüm sealed sınıfın alt sınıfları, aynı dosyada tanımlanmalıdır. Bu, derleyicinin tüm olası mirasçıları bilmesini sağlar ve when ifadelerinde else bloğu yazmaya gerek kalmadan kullanışlıdır.
Avantajlar:
- Tip güvenliği: derleyici, tüm varyantların işlenmesinin tamamını kontrol eder.
- Sınırlı durum veya olay setlerini modellemek için uygundur.
Kullanım senaryoları:
- "Durum" deseninde durumların uygulanması.
- Olaylar veya komutların işlenmesi.
- API yanıtları gibi sınırlı seçenekler kümesini temsil etme.
Örnek:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Veriler: ${result.data}")
is Result.Error -> println("Hata: ${result.error.message}")
Result.Loading -> println("Yükleniyor...")
}
}