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

山东省城建设计院网站深圳高端做网站公司

山东省城建设计院网站,深圳高端做网站公司,商务网站的建设与维护,淄博网站制作网络服务一,定义 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。 也就是将一个对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二&…

一,定义

Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。

也就是将一个对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

二,使用场景

1,相同的方法,不同的执行顺序,产生不同的事件结果时

2,多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时

3,产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用Builder模式非常合适

4,当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时

三,使用Builder模式

假如我们有一个视频播放器,这个播放器初始化的时候可以设置默认图,视频标题,视频链接。

那我们使用Builder模式如下:

新建一个接口,定义视频播放器的功能:

public interface IVideoView {/*** 设置视频标题* */void setTitle(String title);/*** 设置视频封面* */void setImage(String img);/*** 设置视频链接* */void setUrl(String url);
}

新建一个播放器实现接口,内部定义一个Builder静态内部类,用来构建播放器:

/*** 视频播放器* */
public class VideoView implements IVideoView{private static final String TAG = "VideoView";private String title;private String img;private String url;public VideoView(Builder builder) {this.title = builder.title;this.img = builder.img;this.url = builder.url;}@Overridepublic void setTitle(String title) {Log.d(TAG,"title:"+title);}@Overridepublic void setImage(String img) {Log.d(TAG,"img:"+img);}@Overridepublic void setUrl(String url) {Log.d(TAG,"url:"+url);}public static class Builder{private String title;private String img;private String url;public Builder setTitle(String title) {this.title =title;return this;}public Builder setImage(String img) {this.img =img;return this;}public Builder setUrl(String url) {this.url =url;return this;}public VideoView bulid(){return new VideoView(this);}}
}

那么在使用的时候,就可以实现链式调用了:

VideoView videoView = new VideoView.Builder().setImage("http://dxxx/ddsd.jpg").setTitle("视频").setUrl("http://sdsdsds.mp4").bulid();

这样就可以优雅的使用链式调用去创建我们的对象了。

四,安卓中的使用案例

AlertDialog:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher_background).setMessage("title").create().show();

五,总结

优点:

1,封装性好,使用Builder模式可以使客户端不必知道产品内部组成的细节

2,建造者独立,容易扩展

缺点:

会产生多余的Builder对象,消耗内存

http://www.yayakq.cn/news/256104/

相关文章:

  • 做电影网站多少带宽在哪个网站做推广比较好
  • 上海黄金网站设计网站建设关键要做好哪些工作
  • 陕西省住房和城乡建设厅网站上查询余杭住房和城乡建设局网站
  • 山东省住房和建设厅网站诸暨做网站广告的电话
  • 营销类网站设计 要点多媒体网页设计
  • 互联网网站如何做培训计划模板
  • 江安县规划和建设局网站企业网站建设资金预算表
  • 大港油田建设网站wordpress 拍卖主题
  • 手机企业网站建设vs2008 做网站
  • 摄影师网站建设wordpress+论坛+注册
  • 婚纱网站建设 最开始网页微信版传输助手
  • 网站每天一条推送怎么做的网站开发gxjzdrj
  • 复兴区建设局网站东莞保安公司电话
  • 北京做erp报价的网站顺义成都网站建设
  • 中企动力做网站多少钱外网网站建设调研报告
  • 洛南网站建设网站建设对企业带来什么作用
  • 潍坊免费自助建站模板网站网页转app源码
  • 深圳网站制作必选祥奔科技吉林长春seo网站建设网站优化
  • 国内网站建设推荐wordpress微商模板
  • 金利福珠宝的网站建设理念wordpress 收录
  • 官方网站链接如何做网站建设广告素材
  • 安徽网站开发建设贵阳网站建设odenet
  • 新闻类网站怎么做百度推广三丰云免费虚拟主机
  • 电脑机箱定制网站建设银行网站多少
  • 公司没有自己的网站wordpress上传大图
  • 淘宝客有必须做网站吗济南设计网站的公司
  • 网站开发安全小贴士织梦网站背景
  • icp备案的网站名称工业和信息化部网站备案
  • 科讯cms怎么做网站地图discuz做的网站上传到网站空间的文件
  • 湖南信息网官方网站自学网站开发