1.接口委托
package com.jmj.jetpackcomposecompositionlocal.byStudy
/**
* 接口委托
*/
interface HomeDao{
fun getAllData():List<String>
}
interface ADao{
fun getById(id:Int):String
}
class HomeDaoImpl:HomeDao{
override fun getAllData(): List<String> {
return listOf("home")
}
}
class ADaoImpl:ADao{
override fun getById(id: Int): String {
return "object id = $id"
}
}
//这里多态也可以
class HomeService(homeDaoImpl: HomeDaoImpl,aDao: ADao):HomeDao by homeDaoImpl,ADao by aDao{
fun getRedisData():String{
return "redis"
}
}
fun main() {
val homeService = HomeService(HomeDaoImpl(),ADaoImpl())
val allData = homeService.getAllData()
println(allData)
println(homeService.getById(3))
}
2.属性委托
package com.jmj.jetpackcomposecompositionlocal.byStudy
import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadW