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

厦门外贸网站找谁长春网站排名优化价格

厦门外贸网站找谁,长春网站排名优化价格,无锡网站推广经理,长沙网站seo费用前言 建造者模式#xff08;Builder Pattern#xff09;是一种创建型设计模式#xff0c;一步一步地构建一个复杂对象的不同部分#xff0c;而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离#xff0c;使得同样的构建过程可以创建不同的…前言 建造者模式Builder Pattern是一种创建型设计模式一步一步地构建一个复杂对象的不同部分而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离使得同样的构建过程可以创建不同的表示。 具体来说构建者模式使用一个独立的构建器Builder类来封装对象的构建过程。构建器类提供一系列方法来设置对象的属性并最终返回构建好的对象。这种方式可以避免使用多个构造函数或过多的参数使得对象的构建过程更加直观和易于扩展。 应用 在Android中也有很多组件和库中使用到了建造者模式比如原生AlertDialog、Retrofit、NotificationCompat等。 AlertDailog中应用 val builder AlertDialog.Builder(this) builder.setTitle(设计模式).setMessage(这是建造者模式吗).setPositiveButton(是的) { dialog, _ - dialog.dismiss() }.setNegativeButton(不是) { dialog, _ - dialog.dismiss() }.create().show() Retrofit中应用 val retrofit Retrofit.Builder().baseUrl(https://blog.csdn.net/ho).addConverterFactory(GsonConverterFactory.create()).build()val apiService retrofit.create(ApiService::class.java) 从上述例子可以看出建造者模式的写法比较清晰比如AlertDailog中的builder对象采用链式调用setTitle、setMessage等方法我们就仿照AlertDailog使用Kotlin来实现下建造者模式。 package com.ho.csdn.widgetimport android.app.Dialog import android.content.Context import android.graphics.Bitmap import java.lang.IllegalArgumentExceptionclass StudentPickDialog(context: Context) : Dialog(context) {private var mId: Long 0Lprivate var mAvatar: Bitmap? nullprivate var mName: String private var mAge: Int 0private constructor(context: Context,id: Long,avatar: Bitmap?,name: String,age: Int) : this(context) {mAvatar avatarmId idmName namemAge age}companion object {fun init(context: Context): Builder {return Builder(context)}}data class Builder(private val mContext: Context) {private var mId: Long 0Lprivate var mAvatar: Bitmap? nullprivate var mName: String private var mAge: Int 0/*** 设置id*/fun setId(id: Long) apply {this.mId id}/*** 设置头像*/fun setAvatar(avatar: Bitmap) apply {this.mAvatar avatar}/*** 设置名称*/fun setName(name: String) apply {this.mName name}/*** 设置年龄*/fun setAge(age: Int) apply {this.mAge ageif (mAge 150) {throw IllegalArgumentException(年龄超过了限制)}}fun build() StudentPickDialog(mContext, mId, mAvatar, mName, mAge)} } 这里自定义Dailog显示选择某一学生信息做展示建造者模式部分如下新建StudentPickDialog继承Dialog在类内部新建Builder类创建setAvatar、setName、setAge且返回Builder对象外部创建了Builder对象后就可以链式调用方法了。 这里使用到了Kotlin的apply扩展函数函数返回调用它的对象本身的特性。 新建build()方法返回StudentPickDialog对象将Id、名字、头像、年龄作为构造参数传入调用如下。 StudentPickDialog.init(requireContext()).setId(92229).setAvatar(detectBitmap!!).setName(Ho).setAge(30).build().show() 总结 在 Android 中建造者模式被广泛应用于需要配置多个选项、步骤复杂或构建过程不容易一步完成的场景。通过建造者模式可以更轻松地创建和配置复杂对象。
http://www.dnsts.com.cn/news/235570.html

相关文章:

  • 企业网站建设的推广方式软件开发的收官之战是什么
  • 图片网站 建站wordpress 管理员密码忘记
  • 在哪里做马可波罗网站wordpress祖册
  • 招远网站建设重庆建站培训
  • 佛山狮山网站建设空间设计装修公司
  • 公司网站需要备案吗自己如何制作一个网页
  • 站长统计免费下载快速收录域名
  • 更改网站后台网站建设产品展示型的
  • pxhere素材网站西安注册公司网上申请入口
  • 为什么建设网站利尔化学股票股吧
  • 网易那个自己做游戏的网站是什么电子商务建立网站前期准备
  • 网站制作模板下载男女做那个的网站是什么
  • 宁波外贸网站推广php mysql开发的网站
  • 沁水网站建设快速搭建网站视频教程
  • 个人网站的域名注册dw建设网站
  • 怎么做网站海报苏州市住房和城乡建设部网站
  • 怎样设计个人网站太原网站推广优化
  • 上海做高端网站制作爱站网站长工具
  • 想学Wordpress建站即墨做砍价小程序最好的网站
  • 现在企业做网站一般用什么框架wordpress 正文宽度
  • wordpress编辑器无法实现随意排版seo怎么做关键词排名
  • 做网站的人属于什么行业网站编辑怎么做内容分类
  • 做网站例子宁波关键词优化品牌
  • 公司微网站怎么做的好网站如何做美工
  • 网站建设的种类网站开发产品描述
  • 承德建设局网站可作外链的网站
  • 德州市住房和城乡建设局网站浙江网站建设实验心得
  • 怎么用自己的电脑做网站网站建设交接函
  • ps网站首页效果图实例网站风格定位有哪些
  • 微信网站制作系统网站的用户登录一般怎么做的