Android-Kotlin-代理和委托

Posted 原创Android 努力学习 专一安卓 持之以恒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-Kotlin-代理和委托相关的知识,希望对你有一定的参考价值。

代理和委托,在生活中的案例有很多:

 例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的

 



 

 

在Kotlin的代理委托是使用by关键字来处理

 

定义描述寻找的接口,规范寻找的功能的标准:

package cn.kotlin.kotlin_oop07

/**
 * 定义描述寻找的接口
 */
interface ISeek {

    /**
     * 寻找的功能/行为
     */
    fun seekAction()

}

 

老大有寻找的功能 Person1:

package cn.kotlin.kotlin_oop07

/**
 * 老大有寻找的功能
 *
 * by Person2() by 关键字是(委托代理)
 */
class Person1 : ISeek by Person2() {

    /**
     * 老大想寻找 王龟蛋,愿意花1000000元找寻他,这属于(委托代理), 于是给老二1000000元为酬劳
     *
     *  老大说>>>>> "老二 去帮我找到王龟蛋,给你1000000元为酬劳 ....... "
     */
}

 

老二也有寻找的功能 Person2:

package cn.kotlin.kotlin_oop07

/**
* 老二也有寻找的功能
 *
 * by Person3() by 关键字是(委托代理)
*/
class Person2 : ISeek by Person3() {

    /**
     * 由于老大吩咐我找王龟蛋
     * 我愿意花1000元,找寻王龟蛋,所以吩咐 老三去找寻 这属于(委托代理), 于是给老三1000元为酬劳,自己不出力 还赚了999000
     *
     *  我说>>>>> 老三 去帮我找到王龟蛋,给你1000元为酬劳 .......
     */
}

 

老三也有寻找的功能 Person3:

package cn.kotlin.kotlin_oop07

/**
 * 老三也有找寻的功能
 */
class Person3 : ISeek {

    /**
     * 老三在不辞劳苦的找寻王龟蛋,只为赚那1000元
     */
    override fun seekAction() {
        println("经过三周时间,终于找到王龟蛋了....")
    }
}

 

main测试方法:

package cn.kotlin.kotlin_oop07

fun main(args: Array<String>) {

    // 只让 老大去寻找
    var person1 = Person1()

    // 只让 老大去寻找,结果老大委托>>老二去寻找的,然后老二又委托>>老三去寻找的,最后是老三找寻到的
    person1.seekAction()

}

 

执行结果:

 

以上是关于Android-Kotlin-代理和委托的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱 Android-Kotlin 中的 `Unresolved reference: NavController` 错误?

iOS--页面间的代理传值(属性代理(委托)代码块单例通知)

设计模式之代理模式(Proxy)详解及代码示例

Android-Kotlin在Fragment获取View

理解委托代理

如何使用 dart 实现委托/代理?