Middle
Ի՞նչ տեսակների դելեգատներ կան Kotlin-ում։
sobes.tech AI
Պատասխան AI-ից
-
Անհատականության ներկայացուցիչներ (Property Delegates): Позволяют повторно использовать ընդհանուր տրամաբանությունը հատկությունների արժեքների ստացման/տեղադրման համար: Օրինակներ՝
lazy: Աշխատանքի ուշացման սկզբնականացում:observable: Հաղորդում է հատկության արժեքի փոփոխության մասին:vetoable: Позволяет отменить изменение значения свойства:- Map-ում պահվող հատկություններ:
// Աշխատանքի ուշացման սկզբնականացում val lazyValue: String by lazy { println("Հաշվարկ lazyValue...") "Բարև" } // Դիտվող հատկություն var name: String by Delegates.observable("սկզբնական արժեք") { prop, old, new -> println("$old -> $new") } -
Ինտերֆեյսների ներկայացուցիչներ (Delegating Implementation): Позволяют делегировать реализацию интерфейса другому օբյեկտին: Դա "դեկորատոր" օրինակ է:
interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { print(x) } } class Derived(b: Base) : Base by b // Դելեգատավորում Base-ի իրականացմանը