构造器builder
2016-07-11 23:38
603 查看
遇到多个构造器参数时考虑用构造器
提到了流畅接口的问题使用Builder来解决问题
Effective java的内容
当可变参数大于4个以上的时候用Builder,当然一开始就用是比较好的
public class Person { //这里可以直接使用final没有问题的!!! private final String firstName;//必填 private final String lastName;//必填 private String city;//下面3个是选填! private String adress; private boolean marry; //这里考虑了用内部的Builder!也可以在外面声明Builder类 public static class Builder {//Builder是静态 类 !! private String firstName;//直接把里面的字段写下来 private String lastName;//这里需要不需要直接先 = null?? private String city;// private String adress; private boolean marry; public Builder (String firstName , String lastName){ this.firstName = firstName; this.lastName = lastName; } public Builder setCity(String city){ this.city = city; return this; } public Builder setAdress(String adress){ this.adress = adress; return this; } public Builder setMarry(boolean marry){ this.marry = marry; return this; } public Person build(){ return new Person(this); } } private Person(Builder builder){//构造方法私有化 firstName = builder.firstName; lastName = builder.lastName; city = builder.city; adress = builder.adress; marry = builder.marry; } }
下面的如何调用
public class test { Person mPerson = new Person.Builder("xin","gao") .setCity("henan") .setMarry(false) .build();//不是必填的可以随意添加 }
通过该Builder模式,以后如果在需要添加参数,直接在Builder中添加setXXX()就行了!!
恩 现在就知道这么多…初次理解(刘欣课中的理解)//大家也关注下:微信号 码农翻身
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树