代理和委托,在生活中的案例有很多:

例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的



在Kotlin的代理委托是使用by关键字来处理

定义描述寻找的接口,规范寻找的功能的标准:

package cn.kotlin.kotlin_oop07

/**
* 定义描述寻找的接口
*/
interface ISeek { /**
* 寻找的功能/行为
*/
fun seekAction() }

老大有寻找的功能 Person1:

package cn.kotlin.kotlin_oop07

/**
* 老大有寻找的功能
*
* by Person2() by 关键字是(委托代理)
*/
class Person1 : ISeek by Person2() { /**
* 老大想寻找 王龟蛋,愿意花1000000元找寻他,这属于(委托代理), 于是给老二1000000元为酬劳
*
* 老大说>>>>> "老二 去帮我找到王龟蛋,给你1000000元为酬劳 ....... "
*/
}

老二也有寻找的功能 Person2:

package cn.kotlin.kotlin_oop07

/**
* 老二也有寻找的功能
*
* by Person3() by 关键字是(委托代理)
*/
class Person2 : ISeek by Person3() { /**
* 由于老大吩咐我找王龟蛋
* 我愿意花1000元,找寻王龟蛋,所以吩咐 老三去找寻 这属于(委托代理), 于是给老三1000元为酬劳,自己不出力 还赚了999000
*
* 我说>>>>> 老三 去帮我找到王龟蛋,给你1000元为酬劳 .......
*/
}

老三也有寻找的功能 Person3:

package cn.kotlin.kotlin_oop07

/**
* 老三也有找寻的功能
*/
class Person3 : ISeek { /**
* 老三在不辞劳苦的找寻王龟蛋,只为赚那1000元
*/
override fun seekAction() {
println("经过三周时间,终于找到王龟蛋了....")
}
}

main测试方法:

package cn.kotlin.kotlin_oop07

fun main(args: Array<String>) {

    // 只让 老大去寻找
var person1 = Person1() // 只让 老大去寻找,结果老大委托>>老二去寻找的,然后老二又委托>>老三去寻找的,最后是老三找寻到的
person1.seekAction() }

执行结果:

Android-Kotlin-代理和委托的更多相关文章

  1. kotlin面向对象之接口、代理与委托、单例模式

    接口: 对于什么是接口这里就不概述了,跟java中的概念一样,下面直接上代码进行操练: 而男人跟女人的接口当然也是不同的,很显然男人跟女人最大的差别就是拥有"小弟弟"[我黄我暴利] ...

  2. js事件代理(委托)

    JavaScript事件代理(委托)一般用于以下情况: 1. 事件注册在祖先级元素上,代理其子级元素.可以减少事件注册数量,节约内存开销,提高性能. 2. 对js动态添加的子元素可自动绑定事件. 之前 ...

  3. android studio 代理配置

    android studio 代理设置,只支持http代理,不能用ss服务 中间加一层http转换 1远端ss 2client ss 端口 A 3client privoxy服服 代理ss A端口 到 ...

  4. iOS--页面间的代理传值(属性、代理(委托)、代码块、单例、通知)

    (一)属性传值 (二)代理(委托)传值 代理传值 适用于 反向传值 (从后往前传) 1.1 创建协议 及协议方法 在反向传值的页面(SecondViewController)中 1.2 创建协议类型的 ...

  5. JS中事件代理与委托

    在javasript中delegate这个词经常出现,看字面的意思,代理.委托.那么它究竟在什么样的情况下使用?它的原理又是什么?在各种框架中,也经常能看到delegate相关的接口.这些接口又有什么 ...

  6. JavaScript事件代理和委托

    在javasript中,代理.委托经常出现. 那么它究竟在什么样的情况下使用?它的原理又是什么? 这里介绍一下javascript delegate的用法和原理,以及Dojo,jQuery等框架中de ...

  7. 【JS深入学习】——事件代理/事件委托

    事件代理/事件委托(event delegation) 需求一:当一个div内部有多个事件发生,给每个元素逐个添加事件十分麻烦... 需求二:在项目中我们常常需要动态的添加元素,不可避免的需要为那些未 ...

  8. Android SDK代理server解决国内不能更新下载问题

    读者须知:本篇文章中最靠谱的是第三种方式,近期有读者反映第三种方式也不行了,以下提供一点其它途径的开源镜像网站: 国内高校的开源镜像站 中国科学技术大学(debian.ustc.edu.cn) 上海交 ...

  9. fiddler 进行Android/IOS代理配置抓包

    1.准备:Android+IOS设备 下载:fiddler抓包工具,不是最新版的链接:   链接:https://pan.baidu.com/s/1BaBfu2H4xgpsh1wmkfC8aQ     ...

  10. Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15)

    作者:Antonio Leiva 时间:Mar 9, 2017 原文链接:https://antonioleiva.com/property-delegation-kotlin/ 如我们在前面文章中读 ...

随机推荐

  1. Python配置工具类ConfigParser使用

    ConfigParser模块定义了类ConfigParser,用于实现配置文件解释器.该模块ConfigParser在Python3中,已更名为configparser. 一,函数介绍 1.读取配置文 ...

  2. 爬虫初窥day1:urllib

    模拟“豆瓣”网站的用户登录 # coding:utf-8 import urllib url = 'https://www.douban.com/' data = urllib.parse.urlen ...

  3. 《Django By Example》第一章 学习笔记

    首先看了下目录,在这章里 将会学到 安装Django并创建你的第一个项目 设计模型(models)并且生成模型(model)数据库迁移 给你的模型(models)创建一个管理站点 使用查询集(Quer ...

  4. Android Studio 老提示adb问题

    Android Studio 老提示adb问题,restart后任然无解,最后发现某手机助手软件占用端口... 解决步骤: C:\Users\xxx>netstat -ano | findstr ...

  5. Linux上安装java+tomcat+mysql运行环境

    centos6.5jdk"1.7.0_79"mysql5.6apache-tomcat-7.0.53 安装jdk:1.先到oracle下载rpm包:jdk-7u80-linux-x ...

  6. 【转】【MySQL】时间类型存储格式选择

    一  前言  昨天在给开发同学做数据库设计规范分享的时候,讲到时间字段常用的有三个选择datetime.timestamp.int,应该使用什么类型的合适?本文通过三种类型的各个维度来分析,声明:本文 ...

  7. Hadoop3集群搭建之——安装hadoop,配置环境

    接上篇:Hadoop3集群搭建之——虚拟机安装 下篇:Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoop3集群搭建之——hbase安装及简单操作 上篇已 ...

  8. linux 修改yum 为阿里云源

    为了加快yum的下载速度,我们可以讲yum源指向阿里云的资源. 操作方法: 1.备份系统的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repo ...

  9. excel2007vba绘图1

    参考:http://club.excelhome.net/thread-480025-1-1.html '----------------------------------------------- ...

  10. Java潜在的坑持续总结

    1.Java里如果有if (foo == 0),如果foo是null这里居然是会抛NPE异常而不是返回false: 2.Java里整形数值不能用==来比较,因为只有区间是[-128,127]的才能这么 ...