首先我们先来了解一下什么是代理
张三现在租的房子,租期已快到了,房东不出租了,张三急切的需要找新房,但是呢张三天天加班赚钱,没有时间去找房子,所有能张三想委托中介帮忙找一套合适的房子租下来,中介找到合适的房子后就可以通知张三来签合同租房了;
这个例子中张三委托中介,而中介则代理张三去找合适的房子,这里就建立起了代理模式。
Kotlin代理模式的使用
代理模式就是为其他对象提供一种代理以控制对这个对象的访问
Kotlin通过 by 关键字实现代理模式
interface FindHouse{
fun find()
}
class Medium:FindHouse{
override fun find() {
println("我是中介,我受张三的委托,去找房子咯")
}
}
class Zhangsan:FindHouse by Medium(){
}
fun main(args:Array<String>){
Zhangsan().find()
}
输出结果:
我是中介,我受张三的委托,去找房子咯
当然我们也可以在代理方法前后添加一下处理方法:
interface FindHouse{
fun find()
}
object Medium:FindHouse{
override fun find() {
println("我是中介,我受张三的委托,去找房子咯")
}
}
class Zhangsan:FindHouse by Medium{
override fun find() {
println("我很忙,我委托中介帮我找房子吧。。。")
Medium.find()
println("房子找到啦,签合同,住新房咯")
}
}
fun main(args:Array<String>){
Zhangsan().find()
}
结果输出:
我很忙,我委托中介帮我找房子吧。。。
我是中介,我受张三的委托,去找房子咯
房子找到啦,签合同,住新房咯
这里只是简单介绍了一下Kotlin代理关键字by的使用,后面将继续深入学Kotlin的代理模式