一、前景:
一般情况我们不会遇到这样的情况,使用静态工厂方法,或者构造方法就足够。但是它们也有一个限制就是,它们不能很好的扩展到很多可选参数的场景。随着我们业务的深入,某些java bean
中的参数将会越来越多,我们添加的构造方法也相应的增加。想想一个10个参数的构造方法,我胃痛。
既然想要用builder模式,我们首先需要知道传统方法的不足。
二、可伸缩构造方法 VS builder模式
我们都用代码实例来说话
1、可伸缩构造方法
public class Student {
private final String name; // required
private final String sex; // required
private final int weight; // optional
private final int height; // optional
private final int age; // optional
public Student(String name, String sex) {
this(name, sex, 0);
}
public Student(String name, String sex, int w) {
this(name, sex, w, 0);
}
public Student(String name, String sex, int w, int h) {
this(name, sex, w, h, 0);
}
public Student(String name, String sex, int w, int h, int a) {