属性委托
在上一节中,我们了解了使用“by”关键字的委托设计模式。在本节中,我们将学习使用Kotlin库中提到的一些标准方法来了解属性的委托。委派意味着将责任转移给另一个类或方法。当某些地方已经声明了属性时,我们应该重用相同的代码对其进行初始化。在以下示例中,在示例中实现委托时,我们将使用Kotlin提供的一些标准委托方法和一些标准库函数。
使用lazy()
lazy是一个lambda函数,它接受属性作为输入,然后返回lazy <T>的实例,其中<T>基本上是其使用的属性的类型。让我们看看以下内容以了解其工作原理。
在上面的代码中,我们将变量“myVar”传递给lazy函数,该函数反过来将值分配给其对象,并将其返回给main函数。以下是浏览器中的输出。
Delegetion.Observable()
Observable()使用两个参数来初始化对象,并将其返回给被调用的函数。在下面的示例中,我们将看到如何使用Observable()方法来实现委托。
上面的代码将在浏览器中产生以下输出。
通常,语法是委派“by”关键字后的表达式。变量p的get()和set()方法将委托给在Delegate类中定义的getValue()和setValue()方法。
对于上面的代码,以下是我们需要生成的委托类,以便在变量p中分配值。
在读取时,将调用getValue()方法,而在设置变量时将调用setValue()方法。