Sobes.tech
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...")
    }
}