kotlin 基础 thriteen 代理和委托

《kotlin 基础 thriteen 代理和委托》 kotlin.jpeg

委托和代理

  • 委托是把事物托付给别人或别的机构办理
  • 代理是指以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。代理的产生,可以是受他人委托

kotlin 接口代理

  • by

    《kotlin 基础 thriteen 代理和委托》 delegate.jpeg

在之间我们 move 这个方法放在 Human 这个抽象类上,让后 XMan 和 Man 来通过继承抽象类 Human 来实现 move 方法,现在我们把表示能力 move 移动到一个接口 IMove 上,然后让他们通过实现接口来实现 move 方法

interface IMove {
    fun move();
}
class Man(name: String):Human(name),IMove{
    override fun move() {
        println("walk...")
    }

    override fun walk() {
        println("normal speed walk")
    }


}

我们 XMan 通过 by 来指定 IMove 的代理为 Man

class XMan(name:String):Human(name),IXMan,IMove by Man(name){
    override fun specialSkill() {
        println("strong...")
    }


    override fun walk(){
        println("walk two seepd ")
    }
}

用处就是在 XMan 即使我们没有实现 IMove 接口的 move 方法,因为有代理 Man ,所以就会调用 Man 对 move 的实现方法。

class XMan(name:String):Human(name),IXMan,IMove by Man(name){
    override fun specialSkill() {
        println("strong...")
    }

    override fun move() {
        println("flay")
        Man(name).move()
    }

    override fun walk(){
        println("walk two seepd ")
    }
}

其实我们在每次调用 Man(name)

《kotlin 基础 thriteen 代理和委托》 kotlin_end.jpg

点赞