Sobes.tech
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 ή αποτελέσματα λειτουργιών.