Junior — Middle
Kotlin тилиндеги делегация концепциясын жана анын колдонулушун түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Kotlinде делегация — бул механизим, ал аркылуу белгилүү бир интерфейс же мүнөздөмөнүн ишке ашуусун башка объектке өткөрүп берүү мүмкүнчүлүгүн берет, анын түздөн-түз класс ичинде ишке ашырылышынын ордуна. Бул кодду кайталанууну алдын алууга жана композицияны жөнөкөйлөштүрүүгө жардам берет.
Эң кеңири колдонулган мисал — by ачкыч сөзү аркылуу мүнөздөмөлөрдү делегациялоо.
Мүнөздөмө делегациясынын мисалы:
class User {
var name: String by Delegates.observable("") { prop, eski, жаңы ->
println("${prop.name} мүнөздөмөсү $eskiден $жаңыга өзгөрдү")
}
}
Ошондой эле, интерфейсдин ишке ашуусун делегациялоо мүмкүн:
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ге делегацияланат
}
Бул ыкма жоопкерчиликтерди бөлүүгө жана мурассыз кодду кайра колдонууга мүмкүндүк берет.