Junior — Middle
Μπορείς να εξηγήσεις την έννοια της ανάθεσης στη γλώσσα Kotlin και την εφαρμογή της;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, η ανάθεση είναι ένας μηχανισμός που επιτρέπει τη μεταβίβαση της υλοποίησης μιας συγκεκριμένης διεπαφής ή ιδιότητας σε ένα άλλο αντικείμενο, αντί να υλοποιείται άμεσα στην κλάση. Αυτό βοηθά στην αποφυγή διπλότυπου κώδικα και απλοποιεί τη σύνθεση.
Το πιο συνηθισμένο παράδειγμα είναι η ανάθεση ιδιοτήτων με τη χρήση της λέξης-κλειδιού by.
Παράδειγμα ανάθεσης ιδιότητας:
class User {
var name: String by Delegates.observable("") { prop, old, new ->
println("Η ιδιότητα ${prop.name} άλλαξε από $old σε $new")
}
}
Επίσης, μπορεί να ανατεθεί η υλοποίηση μιας διεπαφής:
interface Printer {
fun print()
}
class RealPrinter : Printer {
override fun print() {
println("Εκτύπωση εγγράφου")
}
}
class Manager(printer: Printer) : Printer by printer
fun main() {
val realPrinter = RealPrinter()
val manager = Manager(realPrinter)
manager.print() // η κλήση ανατίθεται στον realPrinter
}
Αυτή η προσέγγιση επιτρέπει τον διαχωρισμό των ευθυνών και την επανάχρηση κώδικα χωρίς κληρονομικότητα.