Kotlin编程相关知识点介绍:
- Kotlin编程之使用Intellij IED和了解源文件(.kt)
- Kotlin编程之类的介绍和使用
- Kotlin编程之类的属性
- Kotlin编程之方法
- Kotlin编程之父类和继承父类
- Kotlin编程之接口和实现接口
- Kotlin编程之伴生对象,抽象类,密封类
- Kotlin编程之嵌套类,内部类,匿名内部类
- Kotlin编程之对象的表达式和声明
- Kotlin编程之扩展方法
- Kotlin编程之扩展属性和扩展伴生对象
- Kotlin编程之泛型
- Kotlin编程之if语句,while循环,when表达式,for循环
- Kotlin编程之可见性修饰词(private,protected,internal,public)
类代理
在Kotlin编程中,很容易实现实现代理模式方式,只需要给代理类去实现父接口,且指定一个对象来代理接口中的全部公开方法。
代理模式:给实现继承提供了很好的代理方式,将实际业务和附带业务分割开来。
package com.xingen.kotlin.day2017529.pm
fun main(args: Array<String>) {
var b=BaseInterfaceImpl("一个类的被另外一个类所代理")
Derived(b).test()
}
interface BaseInterface{
fun test()
}
class BaseInterfaceImpl(var str:String):BaseInterface{
override fun test() {
println(str)
}
}
/**
* 指定一个代理类:
* 通过by从句,将b存储在Derived内部对象中
* b对象可以调用BaseInterface中所有公开方法
*/
class Derived(b:BaseInterface):BaseInterface by b
输出结果:
一个类的被另外一个类所代理
可知:
- 代理类需要实现父接口
- 代理类中需要指定一个对象,去代理接口的全部公开方法
转成java代码后,发现通过接口 by 方式来实现代理,也是调用了接口的公开方法,从而实现代理隔开。