Sobes.tech
Junior — Middle

Τι είναι μια κλειστή κλάση και ποια είναι τα βασικά πλεονεκτήματα και χαρακτηριστικά της;

sobes.tech AI

Απάντηση από AI

Η κλειστή κλάση (sealed class) είναι ένας ειδικός τύπος κλάσης στην Kotlin (συχνά χρησιμοποιείται στην ανάπτυξη Android), που περιορίζει την ιεραρχία κληρονόμησης. Η κύρια ιδέα είναι ότι όλες οι υποκλάσεις μιας κλειστής κλάσης πρέπει να δηλώνονται στο ίδιο αρχείο με την ίδια την κλάση.

Πλεονεκτήματα και χαρακτηριστικά:

  • Επιτρέπει στον μεταγλωττιστή να γνωρίζει το πλήρες σύνολο των υποκλάσεων, βελτιώνοντας την ασφάλεια και την ευκολία κατά τη χρήση εκφράσεων when — ο μεταγλωττιστής θα ελέγξει ότι όλες οι επιλογές έχουν αντιμετωπιστεί.
  • Διευκολύνει το μοντελοποίηση περιορισμένων ιεραρχιών, π.χ., καταστάσεων ή γεγονότων.
  • Απαγορεύει τη δημιουργία νέων υποκλάσεων εκτός του αρχείου, αυξάνοντας τον έλεγχο στην αρχιτεκτονική.

Παράδειγμα:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Δεδομένα: ${result.data}")
        is Result.Error -> println("Σφάλμα: ${result.error.message}")
    }
}