当前位置: 首页 > wzjs >正文

opencart做外贸网站怎样建筑参考网站

opencart做外贸网站怎样,建筑参考网站,wordpress移除快速发布,更改网站的布局在 Kotlin 中,属性委托和类委托是两种通过 by 关键字实现的强大特性,它们通过“委托”机制将行为或实现逻辑委托给其他对象,从而实现代码的复用和解耦。 1 属性委托 定义: 允许把属性的 get 和 set 方法的具体实现委托给另一个对…

在 Kotlin 中,属性委托和类委托是两种通过 by 关键字实现的强大特性,它们通过“委托”机制将行为或实现逻辑委托给其他对象,从而实现代码的复用和解耦。

1 属性委托

定义: 允许把属性的 getset 方法的具体实现委托给另一个对象。

语法:

var/val 属性名: 类型 by 委托对象

委托类的要求:

  • 对于 val(只读属性),需要实现 getValue()
  • 对于 var(可变属性),需要实现 getValue()setValue()

常见的使用场景:

  • 延迟初始化:by lazy(首次访问时才进行初始化);
  • 属性监听:Delegates.observable(属性值发生变化时触发回调);
  • 动态属性存储:从 Map 中读取属性(如解析 JSON 或配置);

示例:

class Person(val name: String, val age: Int)val person: Person by lazy {Person("Eileen", 34)
}var name: String by Delegates.observable("init data") { prop, old, new ->println("${prop.name}$old 变为 $new")
}class Student(val map: Map<String, Any>) {val name: String by map // 从 map 中按 key 取值val age: Int by map
}val student = Student(mapOf("name" to "Eileen", "age" to 30))
println(student.name) // Eileen

Kotlin 标准库提供的委托工具:

  • lazy:延迟初始化;
  • Delegates.observable:监听属性变化;
  • Delegates.vetoable:在赋值前校验值是否合法;
  • Delegates.notNull:非空属性的延迟赋值;

2 类委托

定义:将类的接口实现委托给另一个对象,实现组合复用。 通过组合代替继承,避免单继承的局限性。

语法:

class 类名(委托对象): 接口 by 委托对象

典型场景:

  • 装饰器模式:增强对现有对象的功能(如添加日志、缓存);
  • 接口实现复用:多个类共享同一接口的默认逻辑;
  • 动态替换行为:运行时切换委托对象(如策略模式);

示例:

interface DataFetcher {fun fetchData(): String
}class NetworkFetcher : DataFetcher {override fun fetchData() = "从网络获取数据"
}// 通过委托添加缓存功能
class CachedFetcher(private val fetcher: DataFetcher) : DataFetcher by fetcher {private var cachedData: String? = nulloverride fun fetchData(): String {return cachedData ?: fetcher.fetchData().also { cachedData = it }}
}fun main() {val networkFetcher = NetworkFetcher()val cachedFetcher = CachedFetcher(networkFetcher)println(cachedFetcher.fetchData()) // 第一次调用从网络获取println(cachedFetcher.fetchData()) // 第二次直接返回缓存
}

文章转载自:

http://su2TogcN.pxwsd.cn
http://tEhTSJdj.pxwsd.cn
http://O0u6VrdK.pxwsd.cn
http://vr4oOvJj.pxwsd.cn
http://WwJPuObC.pxwsd.cn
http://E8w8IcGc.pxwsd.cn
http://2F2EKH1h.pxwsd.cn
http://jVI7IjR3.pxwsd.cn
http://H19hWoo6.pxwsd.cn
http://OndKIRnS.pxwsd.cn
http://WvuQSXo5.pxwsd.cn
http://VIU55UK0.pxwsd.cn
http://Q13neEH0.pxwsd.cn
http://c9Jb8C6B.pxwsd.cn
http://zCmAH25Q.pxwsd.cn
http://Q86PB5zO.pxwsd.cn
http://17HXIaok.pxwsd.cn
http://fiUpTbf3.pxwsd.cn
http://QOg3FBV0.pxwsd.cn
http://qpFeMhYa.pxwsd.cn
http://p7O1CRRd.pxwsd.cn
http://PtjKQtRt.pxwsd.cn
http://lddgGQTZ.pxwsd.cn
http://yRflzkc5.pxwsd.cn
http://9aWv33w8.pxwsd.cn
http://4WDjF3GB.pxwsd.cn
http://7osvEZL5.pxwsd.cn
http://7mCeXDhF.pxwsd.cn
http://kzrw0wUf.pxwsd.cn
http://DtnmUEk4.pxwsd.cn
http://www.dtcms.com/wzjs/629062.html

相关文章:

  • 网站升级什么意思网页设计代码12星座
  • 巴南市政建设网站重庆sem网站推广
  • wordpress 只显示列表福州外包seo公司
  • 网站上做烟花效果深圳网站建设简介
  • 资料代做网站深圳双语网站制作
  • 广州市白云区网站建设维护企业网站建站软件
  • html5 微网站布局wordpress主题代码解读
  • 天津网站的优化宝安设计网站建设
  • 百度免费网站申请注册网站开发要学哪些知识
  • 做调查挣钱的网站自己建站流程
  • 深圳商业网站建设系统济宁苍南网站建设
  • 如何查询某个网站的设计公司网络营销出来做什么
  • asp access网站建设源代码如何网上开店卖东西
  • 中国专业做鞋子的网站如何把国外的网站在国内做镜像
  • 课外辅导东莞网站建设技术支持年会策划方案
  • 一个虚拟主机怎么做多个网站个人网站名称
  • wordpress写api接口网站优化的方式
  • 曲靖做网站公司郑州货拉拉
  • 代做毕业设计网站大学网站建设排名
  • 视频网站怎么做的反爬虫电商网站功能模块
  • 莱特币做空 网站南昌租房网
  • 找兼职做网站建设郑州高端网站定制公司
  • 昆山网站制作 微博png免费素材网站
  • 如何自己制作一个网站网站建设合作方案
  • 做特卖的网站网站底部菜单
  • 创建网站怎么赚钱的网页设计个人简介代码
  • 网站建设工作流程html阿里云 wordpress 权限
  • 百度统计 wordpress 插件如何做好seo
  • 专业建站开发通州优化公司
  • 如何在网站中做公示信息低价网站备案