Builder模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
如下为构建一个复杂的对象(已经删除了很多属性)
public class User {
private String name;
private int age;
private boolean sex;
private String address;
private String company;
public User(Builder builder){
this.name = builder.name;
this.age = builder.age;
this.sex = builder.sex;
this.address = builder.address;
this.company = builder.company;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public boolean isSex() {
return sex;
}
public String getAddress() {
return address;
}
public String getCompany() {
return company;
}
public static class Builder{
private String name;
private int age;
private boolean sex;
private String address;
private String company;
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(int age) {
this.age = age;
return this;
}
public Builder setSex(boolean sex) {
this.sex = sex;
return this;
}
public Builder setAddress(String address) {
this.address = address;
return this;
}
public Builder setCompany(String company) {
this.company = company;
return this;
}
public User build(){
return new User(this);
}
}
}
测试代码:
User user = new User.Builder().setName("kevin.yang").
setAge(18).setSex(true).setCompany("csdn").
setAddress("中国").build();