前言: new一个对象通常会在构造方法中进行传参,但当参数很多时我们就要写很多种不同形式的构造函数,这无疑是枯燥低效的,此时用builder模式就可以解决这个问题。 使用场景:当构造函数的参数大于等于三个时就建议用builder模式,以便灵活的传参。 直接上demo: public class People{ private int age; private int heigh; private String name; private String sex; //getter和setter方法就不写了 public setter()..... public getter()..... public static class Builder { private int age = 0; private int heigh= 0; private String name = null; private String sex = null; // 构建的步骤 public Builder(String name) { this.name = name; } public Builder age(int val) { age = val; return this; } public Builder heigh(int val) { heigh= val; return this; } public Builder sex(String val) { sex= val; return this; } public People build() { // 构建,返回一个新对象 return new People(this); } } //构造方法私有化。 private People(Builder b) { age = b.age; heigh= b.heigh; name = b.name; sex= b.sex; } } 最终,客户程序可以很灵活的去构建这个对象。 People vPeople = new People.Builder('张三') .age(10) .sex('beijing').build(); 这样我们想传几个参数就传几个参数,不用创建那么多无用的构造函数,也不用传值的时候传很多null,更加高效的进行开发。 |
|