代理和委托,在生活中的案例有很多:
例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的
在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() }
执行结果: