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}")
}
}