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

如何用服务器建设网站常用搜索引擎有哪些

如何用服务器建设网站,常用搜索引擎有哪些,郑州市疫情防控新闻发布会,个人做网站靠什么挣钱前言 建造者模式(Builder Pattern)是一种创建型设计模式,一步一步地构建一个复杂对象的不同部分,而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的…

前言

建造者模式(Builder Pattern)是一种创建型设计模式,一步一步地构建一个复杂对象的不同部分,而不是直接创建该对象的实例。建造者模式的核心思想是将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。

具体来说,构建者模式使用一个独立的构建器(Builder)类来封装对象的构建过程。构建器类提供一系列方法来设置对象的属性,并最终返回构建好的对象。这种方式可以避免使用多个构造函数或过多的参数,使得对象的构建过程更加直观和易于扩展。


应用

Android中,也有很多组件和库中使用到了建造者模式,比如原生AlertDialogRetrofitNotificationCompat等。

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对象采用链式调用setTitlesetMessage等方法,我们就仿照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类,创建setAvatarsetNamesetAge且返回Builder对象,外部创建了Builder对象后就可以链式调用方法了。

这里使用到了Kotlin的apply扩展函数,函数返回调用它的对象本身的特性。

新建build()方法,返回StudentPickDialog对象,将Id、名字、头像、年龄作为构造参数传入,调用如下。

StudentPickDialog.init(requireContext()).setId(92229).setAvatar(detectBitmap!!).setName("Ho").setAge(30).build().show()

总结

Android 中,建造者模式被广泛应用于需要配置多个选项、步骤复杂或构建过程不容易一步完成的场景。通过建造者模式,可以更轻松地创建和配置复杂对象。

http://www.ds6.com.cn/news/72833.html

相关文章:

  • 十堰网站建设专家网店代运营诈骗
  • 信息发布网站怎么做搜索关键词查询工具
  • 做视频网站需要流媒体吗重庆公司网站seo
  • 做网站赚大钱公司建网站需要多少钱
  • 做户外灯批发什么b2b网站好嘉兴seo外包公司
  • 用手机网站做app整合营销包括哪三方面
  • wordpress主题租房西安seo优化系统
  • 化妆品网站的搭建百度搜索推广的五大优势
  • 建设银行官网首页网站南山片区微信小程序开发费用一览表
  • 江西网站优化电商运营工资一般多少钱一个月
  • 3000部末年禁止无需下载seo关键词优化
  • 做网站用什么软件免费百度推广效果不好怎么办
  • 重庆微信网站建设报价天津优化公司哪家好
  • 三生团队网站找谁做的免费站推广网站不用下载
  • 卖鞋做哪个网站好广东疫情最新消息今天又封了
  • 厚街镇做网站网站推广的四个阶段
  • 当当网电子商务网站建设特点青岛专业网站制作
  • 做ppt的背景图片网站免费seo视频教学
  • 建设银行网站不能登录密码百度云盘网页登录入口
  • 十大视频剪辑软件排行榜南宁百度快速排名优化
  • 搬瓦工 做网站网址最新连接查询
  • 手机好看网站模板人民日报新闻消息
  • 怎样免费做公司网站seo的基本步骤是什么
  • 响应式网站怎么做pc端的曲靖新闻今日头条
  • 做企业网站所需要的资料网络推广长沙网络推广
  • 企业网站的优点电脑培训班有哪些科目
  • 手机做简单的网站app拉新推广平台代理
  • 付费网站做推广哪个好信息流优化师培训机构
  • 网站皮肤样板成都百度提升优化
  • 小网站托管费用百度推广计划