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

做网站建设注册商标是多少类辽宁省交通投资建设集团网站

做网站建设注册商标是多少类,辽宁省交通投资建设集团网站,网页怎么制作超链接,外贸公司网站建设哪家好委托模式是一种常用的设计模式#xff0c;用于将某个对象的责任委托给另一个对象来处理。在Kotlin中#xff0c;委托可以通过关键字by来实现#xff0c;主要分为类委托和属性委托两种形式。此外#xff0c;Kotlin还提供了延迟加载的功能#xff0c;可以在需要时才进行初始…委托模式是一种常用的设计模式用于将某个对象的责任委托给另一个对象来处理。在Kotlin中委托可以通过关键字by来实现主要分为类委托和属性委托两种形式。此外Kotlin还提供了延迟加载的功能可以在需要时才进行初始化。 类委托 类委托是一种将接口的实现委托给另一个类来完成的方式。在Kotlin中我们可以通过接口来定义一系列功能然后将这些功能的实现委托给其他类。下面是一个示例 interface Wash {fun washDishes() }class Child : Wash {override fun washDishes() {println(子类或实现类实现功能)} }class Parent : Wash by Child()在上面的示例中接口Wash定义了洗碗的功能。Child类实现了这个接口并提供了具体的洗碗实现。然后Parent类通过关键字by将洗碗的任务委托给了Child类。这样当我们调用Parent类的washDishes()方法时实际上是由Child类来完成洗碗的操作。 val parent Parent() parent.washDishes() // 输出子类或实现类实现功能在上面的代码中我们创建了一个Parent类的实例并调用了其washDishes()方法。由于Parent类委托了Child类所以实际上是调用了Child类的washDishes()方法。 除了直接将接口的实现委托给其他类外我们还可以通过构造函数将委托对象作为参数传递给委托类。下面是一个使用构造函数进行委托的示例 class Parent(washer: Wash) : Wash by washerval child Child() val parent Parent(child) parent.washDishes() // 输出子类或实现类实现功能在上面的示例中我们定义了一个Parent类其构造函数接受一个Wash类型的参数washer。通过关键字byParent类将洗碗的任务委托给了传入的washer对象。在main()函数中我们创建了一个Child类的实例child然后将其作为参数传递给Parent类的构造函数创建了一个parent对象。最后我们调用parent对象的washDishes()方法结果与之前相同。 属性委托 属性委托是一种将属性的读写操作委托给另一个对象来处理的方式。在Kotlin中我们可以通过重载getValue()和setValue()运算符函数来实现属性委托。下面是一个示例 import kotlin.reflect.KPropertyclass Parent {var monkey: Int 0operator fun getValue(child: Child, property: KProperty*): Int {println(getValue()方法被调用修改的属性${property.name})return monkey}operator fun setValue(child: Child, property: KProperty*, value: Int) {println(setValue()方法被调用修改的属性${property.name} $value)monkey value} }class Child {var monkey: Int by Parent() }在上面的示例中我们定义了一个Parent类和一个Child类。Parent类中包含一个monkey属性而Child类通过关键字by将其monkey属性的读写操作委托给了Parent类。在Parent类中我们重载了getValue()和setValue()运算符函数用于处理属性的读取和写入操作。在这两个函数中我们输出了相应的信息以便观察委托的过程。 val child Child() child.monkey 100 // 输出setValue()方法被调用修改的属性monkey 100 child.monkey - 50 // 输出setValue()方法被调用修改的属性monkey -50 println(child.monkey) // 输出getValue()方法被调用修改的属性monkey// 输出-50在上面的代码中我们创建了一个Child类的实例child并对其monkey属性进行了赋值和修改操作。由于Child类将这些操作委托给了Parent类所以在赋值和修改的过程中会分别调用Parent类的setValue()方法并输出相应的信息。最后我们打印child.monkey属性的值实际上是调用了Parent类的getValue()方法并输出了属性的值。 延迟加载 延迟加载也称为懒加载是一种在需要时才进行初始化的方式可以提高程序的效率并加快程序的启动速度。在Kotlin中我们可以通过关键字by lazy来实现延迟加载。延迟加载的变量要求声明为val即不可变变量相当于Java中用final关键字修饰的变量。下面是一个使用延迟加载的示例 val content by lazy {println(hello lazy)World }println(content) // 输出hello lazy// 输出World在上面的示例中我们定义了一个变量content并使用by lazy将其声明为延迟加载变量。在lazy后面的大括号中我们可以编写初始化代码块。在第一次访问content变量时会执行初始化代码块并输出其中的内容“hello lazy”。之后再次访问content变量时只会输出最后一行代码的内容“World”。这样我们就实现了延迟加载的效果。 总结 委托模式是一种将对象的责任委托给其他对象来处理的方式可以通过关键字by来实现。类委托将接口的实现委托给其他类来完成可以直接委托或通过构造函数传递委托对象。属性委托将属性的读写操作委托给其他对象来处理可以通过重载getValue()和setValue()运算符函数实现。延迟加载可以提高程序效率和启动速度通过关键字by lazy来实现延迟加载的变量要求声明为不可变变量。
http://www.dnsts.com.cn/news/111261.html

相关文章:

  • 网站建设存在的问题网站设计与制作是什么专业
  • 网站后台上传图片不显示pc蛋蛋网站怎么做
  • 找做网站的客户安徽seo网络推广
  • 淮安市网站网页设计作品我的家乡
  • 沈阳市建设工程安全监督站网站软件跟网站开发的区别
  • 用html5做的网站源码今天新闻头条
  • 怀化网站建设网站凡客诚品倒闭了
  • 网站建设方案范文1000字岐山网站开发
  • 电子商务网站建设报告怎么写如何做卖菜网站
  • 邢台网站建设有哪些网站开发过程中出现的问题
  • 做化妆品注册和注册的网站wordpress ality
  • 网站开发应该怎么学让人做网站需要准备什么软件
  • 企业网站seo诊断报告阳江市问政平台留言
  • 镇江公司做网站dw个人网站制作
  • 网站建设能挣钱吗wordpress slug translate
  • 做网站高亮怎样在谷歌做网站
  • 无锡免费网站制作莱芜昨天下午又死了7个
  • 扬州网站建设开发宁波网站制作公司排名
  • 公司网站建设费用会计入账wordpress最大附件
  • 网站开发 php 实例教程安徽百度seo公司
  • 教育局网站建设管理工作意见义乌网站建设技巧培训
  • 电商网站规划论文扬州建设信用网站
  • 检测网站开发语言工具聊城做网站的公司流程
  • 南宁网站建设公司排名魏县住房和城乡建设局网站
  • 电商型网站开发多少钱百度快照排名
  • 郑州网站设计排行想在网站里添加超链接怎么做
  • 建设玩外汇平台网站平台门户建设
  • 广东如何做企业网站设计建设网站项目简历
  • 医疗网站制作管理网站模板下载
  • 网站建设软件 优帮云交换友情链接的条件