Java设计中的Builder模式的介绍
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java设计中的Builder模式的介绍,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4983字,纯文字阅读大概需要8分钟。
内容图文
![Java设计中的Builder模式的介绍](/upload/InfoBanner/zyjiaocheng/290/4601f84c215446cd83cff7460cb4f848.jpg)
概述
Builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
使用场景
相同的方法,不同的执行顺序,产生不同的事件结果
多个部件或零件,都可以装配到一个对象中,但产生的运行结果又不相同时
产品类非常复杂,或者产品类中的调用顺序不同产生不同的作用
当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时
下面从一个Person例子进行分析重叠构造器模式、JavaBeans模式、Builder模式的使用。Person类有两个必要参数(id和name),有5个可选参数(age,sex,phone,address和desc)
重叠构造器模式
在这种模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,依此类推,最后一个构造器包含所有的可选参数。下面看看其编程实现:
从上面的代码中,当你想要创建实例的时候,就利用参数列表最短的构造器,但该列表中包含了要设置的所有参数:
重叠构造器可行,但是当有许多参数的时候,创建使用代码会很难写,并且较难以阅读
JavaBeans模式
采用Javabean 的写法,写一堆属性的setter方法,通过生成对象,让后调用setter方法给属性赋值。
这种模式弥补了重叠构造器模式的不足。创建实例很容易,这样产生的代码读起来也很容易:
JavaBeans模式因为构造过程被分到了几个调用中,在构造过程中JavaBean可能处于不一致的状态。类无法仅仅通过检验构造器参数的有效性来保证一致性。
Builder模式
Builder模式既能保证像重叠构造器那样的安全,也能实现JavaBean模式那样的可读性。
Person是不可变得,所有的默认参数值都单独放在一个地方。builder的setter方法返回builder本身,以便可以链式调用。下面是客户端使用代码:
Person person = new Person.Builder(1, "张三")
.age(18).sex("男").desc("测试使用builder模式").build();
Android源码中的Builder模式
AlertDialog源码
Universal-Image-Loader图片库
OkHttp的Request源码
优点:
良好的封装性,使用建造者模式可以使客户端不比知道产品内部组成的细节
建造者独立,容易扩展(可通过抽象———接口,抽象类)
缺点:
会产生多余的Builder对象以及Director对象,消耗内存
总结 :Builder模式通常作为配置类的构建器将配置的构建和表示分离开来,同时也是将配置从目标类中隔离出来,避免过多的setter方法。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
IE8用ajax访问不能每次都刷新的问题
IE8/IE9下Ajax缓存问题
IE8下Ajax缓存问题及解决办法
以上就是Java设计中的Builder模式的介绍的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的Java设计中的Builder模式的介绍全部内容,希望文章能够帮你解决Java设计中的Builder模式的介绍所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。