目的是为了解决当构造器所需要的参数过多时,构造器的编写困难
构造器的编写原则
每多一个构造器就多一个参数
public builddemo(int param1){
}
public builddemo(int param1,int param2){
}
public builddemo(int param1,int param2,int param3){
}
但这样编写对构造器的顺序有要求,不能自由选择,bean模式
public builddemo(){
}
void setParam1();
void setParam2();
void setParam3();
但这样bean模式线程不安全,而且有时候对set的属性顺序有要求>>建造者模式
public class GirlFriend {
int age;
int sanwei;
String name;
String type;
public GirlFriend(){
}
public GirlFriend(int age,int sanwei){
this.age = age;
this.sanwei = sanwei;
}
public GirlFriend(int sanwei){
this.sanwei = sanwei;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSanwei() {
return sanwei;
}
public void setSanwei(int sanwei) {
this.sanwei = sanwei;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
//省略....一大堆构造方法
//通过建造者模式,可以在创建该对象出来时,快速指定它的各种属性
public static class Builder{
int age = 18;
int sanwei = 200;
String name = "大桥未久";
String type = "知名女星";
public Builder age(int age){
this.age = age;
return this;
}
public Builder sanwei(int sanwei){
this.sanwei = sanwei;
return this;
}
public Builder name(String name){
this.name = name;
return this;
}
public Builder type(String type){
this.type = type;
return this;
}
public GirlFriend build(){
GirlFriend girlFriend = new GirlFriend();
//根据先前的各种....方法来设置属性
girlFriend.setSanwei(this.sanwei);
girlFriend.setAge(this.age);
girlFriend.setName(name);
girlFriend.setType(this.type);
return girlFriend;
}
}
}