当一个类有很多个属性时,创建对象的时候要么就先创建个对象然后给对象赋值,要么就根据业务需要写很多个构造器,
这样的构造器可读性差。就算用静态工厂也得写很多个,这时候就可以用构建器了。
例如:
package org.test;
public class People {
private String name = "";
private String age = "";
public People() {
}
public static class Builder {
private String name = "";
private String age = "";
public Builder() {
}
public Builder setName(String val) {
name = val;
return this;
}
public Builder setAge(String val) {
age = val;
return this;
}
public People build() {
return new People(this);
}
}
private People(Builder builder) {
name = builder.name;
age = builder.age;
}
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
构建器的使用
package org.test;
import org.junit.Test;
public class TestTest {
@Test
public void test1() {
People people = new People.Builder().setAge("10").setName("张三").build();
System.out.println(people.toString());
}
}
还是要分情况使用,当类的属性比较少的时候就没必要用构建器了。要用就一开始就用。