Android-Kotlin-代理和委托
代理和委托,在生活中的案例有很多:
例如:小明工作很忙,需要办理银行卡,此时他委托给>>小李去给自己办理银行卡,小李来到办理中心 把自己的身份证/小李的身份证,给办理人员,说是小明委托我,给他办理银行卡的
在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-代理和委托的更多相关文章
- kotlin面向对象之接口、代理与委托、单例模式
接口: 对于什么是接口这里就不概述了,跟java中的概念一样,下面直接上代码进行操练: 而男人跟女人的接口当然也是不同的,很显然男人跟女人最大的差别就是拥有"小弟弟"[我黄我暴利] ...
- js事件代理(委托)
JavaScript事件代理(委托)一般用于以下情况: 1. 事件注册在祖先级元素上,代理其子级元素.可以减少事件注册数量,节约内存开销,提高性能. 2. 对js动态添加的子元素可自动绑定事件. 之前 ...
- android studio 代理配置
android studio 代理设置,只支持http代理,不能用ss服务 中间加一层http转换 1远端ss 2client ss 端口 A 3client privoxy服服 代理ss A端口 到 ...
- iOS--页面间的代理传值(属性、代理(委托)、代码块、单例、通知)
(一)属性传值 (二)代理(委托)传值 代理传值 适用于 反向传值 (从后往前传) 1.1 创建协议 及协议方法 在反向传值的页面(SecondViewController)中 1.2 创建协议类型的 ...
- JS中事件代理与委托
在javasript中delegate这个词经常出现,看字面的意思,代理.委托.那么它究竟在什么样的情况下使用?它的原理又是什么?在各种框架中,也经常能看到delegate相关的接口.这些接口又有什么 ...
- JavaScript事件代理和委托
在javasript中,代理.委托经常出现. 那么它究竟在什么样的情况下使用?它的原理又是什么? 这里介绍一下javascript delegate的用法和原理,以及Dojo,jQuery等框架中de ...
- 【JS深入学习】——事件代理/事件委托
事件代理/事件委托(event delegation) 需求一:当一个div内部有多个事件发生,给每个元素逐个添加事件十分麻烦... 需求二:在项目中我们常常需要动态的添加元素,不可避免的需要为那些未 ...
- Android SDK代理server解决国内不能更新下载问题
读者须知:本篇文章中最靠谱的是第三种方式,近期有读者反映第三种方式也不行了,以下提供一点其它途径的开源镜像网站: 国内高校的开源镜像站 中国科学技术大学(debian.ustc.edu.cn) 上海交 ...
- fiddler 进行Android/IOS代理配置抓包
1.准备:Android+IOS设备 下载:fiddler抓包工具,不是最新版的链接: 链接:https://pan.baidu.com/s/1BaBfu2H4xgpsh1wmkfC8aQ ...
- Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15)
作者:Antonio Leiva 时间:Mar 9, 2017 原文链接:https://antonioleiva.com/property-delegation-kotlin/ 如我们在前面文章中读 ...
随机推荐
- python 截取某一天的日志,简单操作
#!/usr/bin/python #Filename: Segmentation_log.py import re,sys def openfile(*args): try: f=open(args ...
- shell统计昨天的独立ip
test.txt --| --| --| --| --| --| --| --| --| shell命令 yesterday=`date +%Y-%m-%d -d -1days` awk -v yes ...
- where
(二)WHERE //where不单独使用,与match,optional match,start,with搭配 where 与match,optional match 一起用,表示约束 where ...
- 使用crf++
在example文件夹下存在4个使用crf的实例 1.在命令行执行 进入路径:./example/seg 执行:sh exec.sh 2. 在python中执行 进入路径:./python 执行:(1 ...
- Spark的Rpct模块的学习
Spark的Rpct模块的学习 Spark的Rpc模块是1.x重构出来可,以前的代码中大量使用了akka的类,为了把akka从项目的依赖中移除,所有添加了该模块.先看下该模块的几个主要的类 使用E ...
- Javascript短路运算||和&&
1.只要“||”前面为false,无论“||”后面是true还是false,结果都返回“||”后面的值. 2.只要“||”前面为true,无论“||”后面是true还是false,结果都返回“||”前 ...
- 在python中while
一.While循环 1.while循环格式 while 条件 : while循环体 当条件为Ture时,执行循环体,直到条件是假,停止循环. count = 1 # count 计数 一般用于计数 w ...
- idea中使用thymeleaf标签时有红色的波浪线怎么去掉
使用最新版本的idea2017可以解决,方法如下: 选择File->Settings->Editor->Inspections,然后搜索thymeleaf 将Expression v ...
- Event.target和Event.currentTarget的区别
<style> * { margin:0; padding:0; list-style:none; } #ul { width:400px; height:250px; margin:0 ...
- load data妙用
load变量和用户变量的巧妙结合,实现灵活导入字段列(NO.1) LOAD DATA INFILE 'file.csv' INTO TABLE dados_meteo (@var1, @var2) S ...