您的位置:首页 > 产品设计 > UI/UE

构造器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 Builder