代理模式(kotlin)----静态代理
设计模式——代理模式(kotlin)静态代理
·
下面是代码示例:主要实现方式关键字by
package com.lyc.myeight.interfaces
interface ZuFang {
fun KanFang()
fun DingJia(int: Int)
fun QianHeTong()
}
package com.lyc.myeight
import android.nfc.Tag
import android.util.Log
import com.lyc.myeight.interfaces.ZuFang
class Fangdong:ZuFang {
companion object{
val TAG="testlyc"
}
override fun KanFang() {
Log.d(TAG,"kan")
}
override fun DingJia(int: Int) {
Log.d(TAG,"一个月租金: $int")
}
override fun QianHeTong() {
Log.d(TAG,"签合同")
}
}
package com.lyc.myeight
import android.util.Log
import com.lyc.myeight.interfaces.ZuFang
class ZhongJie(fangdong: Fangdong):ZuFang by fangdong{
var mtip=0
private val mfabfdong=fangdong
fun give(tip:Int){
mtip=tip
}
override fun KanFang() {
if (mtip>200){
mfabfdong.KanFang()
}else{
Log.d("testlyc","没有消费不给看房")
}
}
}
val zhongJie = ZhongJie(Fangdong()) zhongJie.KanFang() zhongJie.give(3000) zhongJie.KanFang() zhongJie.DingJia(500) zhongJie.QianHeTong()
运行结果:
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 没有消费不给看房
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: kan
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 一个月租金: 500
2022-06-30 11:54:30.680 14406-14406/com.lyc.myeight D/testlyc: 签合同
更多推荐



所有评论(0)