builder模式
为什么要使用builder模式
在实际开发中,在一个类中可能有很多的属性,但是这些属性不一定都是必须的,我们可能要设定其中一个或几个的组合为必须属性,其他为非必须属性.
必须属性是必须要赋值的;
而非必须属性可以选择赋值也可以选择不赋值;
如果使用构造方法,一个构造方法代表一种组合.
根据不同需求会有很多不同组合,就要写很多的构造方法
这时,我们就要用到builder模式
builder模式的作用
限定一个或几个属性为必须属性,其他为非必须属性,根据情况可以自由组合;
如:
要写一个信息录入的程序:
录入内容有: 姓名(name),年龄(age),性别(genden),身份证号(id)
要求:必须填写姓名和性别
Person类
public class Person{
private String name;
private String genden;
private int age;
private String id;
public String setName(){
return name;
}
public String setGenden(){
return genden;
}
public int setAge(){
return age;
}
public String setId(){
return id;
}
public static class newBuilder(){
private String name;
private String genden;
private int age;
private String id;
public newBuilder setAge(){
this.age=age;
return this;
}
public newBuilder setId(){
this.id=id;
return this;
}
public newBuilder(String name,String genden){
this.name=name;
this.genden=genden;
}
public Person build(){
return new Person(this);
}
}
public Person(newBuilder builder){
this.name=builder.name;
this.genden=builder.genden;
this.id=builder.id;
this.age=builder.id;
}
}
TestCreateDemo类
public class TestCreateDemo{
//强制要求输入姓名,性别
Person p1=new Person.newBuilder("小王","男").build();
//选择性添加年龄,身份证号
Person p2=new Perosn.newBuilder("小李","女").setAge(20).setId("S001").build();
}