Middle
Kotlin-də hierarxiyaları modelləşdirmək üçün möhürlənmiş siniflərdən necə istifadə etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Bağlanmış sinflər (sealed classes), bütün mümkün alt siniflərin tərtib zamanı məlum olduğu məhdud irsiyyət hiyerarşilərini təmsil etmək üçün istifadə olunur.
Əsas xüsusiyyətlər:
- Bütün birbaşa alt siniflər eyni faylda yerləşməlidir (Kotlin 1.5-dən əvvəl). Kotlin 1.5-dən sonra, onlar eyni tərtibdə istənilən faylda ola bilər.
- Bağlanmış sinfin alt sinifləri adi sinflər, data sinflər, object bəyanatları və ya digər bağlanmış sinflər ola bilər.
- Bağlanmış sinfin konstruktoru default olaraq özəldir; digər modifikatorlar (public, protected, internal) icazə verilmir.
- When ifadələrində tam (
exhaustive) analiz istifadə etməyə imkan verir, bu da bütün mümkün variantların işlənməsini təmin edir və else-şərtinə ehtiyacı aradan qaldırır.
İstifadə nümunəsi, istifadəçi interfeysinin vəziyyətini modelləşdirmək üçün:
sealed class UiState {
object Loading : UiState() // Yükləmə vəziyyəti
data class Success(val data: String) : UiState() // Uğurlu məlumat alınması
data class Error(val message: String) : UiState() // Xəta
}
When ifadəsində istifadə:
fun handleUiState(state: UiState): String {
return when (state) {
UiState.Loading -> "Məlumatlar yüklənir..."
is UiState.Success -> "Məlumatlar uğurla yükləndi: ${state.data}"
is UiState.Error -> "Xəta: ${state.message}"
}
}
Üstünlüklər:
- Tip təhlükəsizliyi: tərtibçi bütün mümkün alt siniflərin işlənməsini yoxlayır.
- Oxunaqlıq: hansı məlumat və ya vəziyyət variantlarının mövcud ola biləcəyini açıq göstərir.
- Rahatlıq:
whenifadələri ilə işləməni sadələşdirir.