点击领取优惠~
246 字
1 分钟
对委托的理解
首先委托的概念就是把一个对象的职责委托给另外一个对象,在kotlin中有属性的委托和类的委托。属性的委托比如by lazy,他的作用是使用到的时候才加载简化了判空代码也节省了性能。
类的委托通常是一个接口委托一个对象interface by Class。目的是对一个类的解耦方便以后相同功能的代码复用。例子就不举例了,就是但凡开发中想到有些代码是可以复用的时候可以考虑能不能写成一个接口去交给委托类去实现。
问到by lazy可能还会问你与lateinit的区别。
- lateinit:延时加载,只是告诉编译器不用检查这个变量的初始化,不能使用val修饰
- by lazy:懒加载,lazy是一个内联高阶函数,通过传入自身来做一些初始化的判断。
对委托的理解