Junior — Middle
Kotlin'de sealed class yerine enum kullanmak hangi durumlarda tercih edilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de sealed class, farklı veri yapıları ve davranışlara sahip sınırlı bir tür kümesini tanımlamanız gerektiğinde enum yerine tercih edilir, sadece sabitler kümesi değil.
Farklar ve sealed class kullanımı durumları:
- Farklı veri yapıları: Enum'da tüm öğeler aynı türde sabitlerdir, ancak sealed class her alt sınıfın kendi özellikleri ve metodları olmasına izin verir.
- Miras ve genişletilebilirlik: Sealed class, sınırlı sayıda mirasçıya sahip temel bir sınıftır, bu da hiyerarşileri ifade etmekte kullanışlıdır.
- when ifadesinde kullanımı: Derleyici, sealed class için when ifadesinin tamlığını kontrol eder, bu da güvenliği artırır.
Sealed class örneği:
sealed class Sonuç {
data class Başarılı(val veri: String) : Sonuç()
data class Hata(val hata: Throwable) : Sonuç()
object Yükleniyor : Sonuç()
}
fun sonucuİşle(sonuç: Sonuç) {
when(sonuç) {
is Sonuç.Başarılı -> println("Veri: ${sonuç.veri}")
is Sonuç.Hata -> println("Hata: ${sonuç.hata.message}")
Sonuç.Yükleniyor -> println("Yükleniyor...")
}
}
Sadece sabit sabitler listesi gerekiyorsa, enum daha basit ve etkilidir.