Junior — Middle
Έχετε χρησιμοποιήσει sealed class στα έργα σας;
sobes.tech AI
Απάντηση από AI
Ναι, σε έργα Kotlin για Android έχω χρησιμοποιήσει sealed class για το μοντελοποίηση περιορισμένων ιεραρχιών καταστάσεων ή γεγονότων. Η sealed class επιτρέπει τον ορισμό ενός συνόλου υποκατηγοριών που είναι γνωστές κατά τη φάση της μεταγλώττισης, διευκολύνοντας τη διαχείριση μέσω when χωρίς την ανάγκη να γράψετε μια διακλάδωση else.
Παράδειγμα χρήσης sealed class για την περιγραφή καταστάσεων φόρτωσης:
sealed class LoadState {
object Loading : LoadState()
data class Success(val data: List<String>) : LoadState()
data class Error(val error: Throwable) : LoadState()
}
fun handleState(state: LoadState) {
when(state) {
is LoadState.Loading -> println("Φόρτωση...")
is LoadState.Success -> println("Δεδομένα λήφθηκαν: ${state.data}")
is LoadState.Error -> println("Σφάλμα: ${state.error.message}")
}
}
Αυτό βοηθά να κάνετε τον κώδικα πιο ασφαλή και ευανάγνωστο, ειδικά όταν εργάζεστε με καταστάσεις UI ή αποτελέσματα λειτουργιών.