怎么理解构建者模式?
构建者模式中,用一个构建者类负责定义用于构建复杂对象的方法。这些方法通常是添加复杂对象的各个部分的方法。然后,有一个指挥者类负责调用构建者类的方法来构建复杂对象。
案例演示
一般构建者类都会定义成静态嵌套类,这里也是直接定义成静态嵌套类。首先定一个外部类 Car,有三个属性,然后再定个 CarBuilder 类,这个 CarBuilder 类负责将 Car 中所有属性填充完整,注意 CarBuilder 类中每个方法都返回 this,这样就可以像链式一样一直调用,最后在定义个 build() 方法用来返回外部类对象,代码如下:
@Data
public class Car {
private String production;
private Integer length;
private String type;
public static final class CarBuilder {
private final Car car = new Car();
public CarBuilder type(String type) {
car.setType(type);
return this;
}
public CarBuilder length(Integer length) {
car.setLength(length);
return this;
}
public CarBuilder production(String body) {
car.setProduction(body);
return this;
}
public Car build() {
return car;
}
}
}
然后再使用这个构建者类创建 Car,并为其填充属性,代码如下:
public class CarBuilderTest {
public static void main(String[] args) {
Car.CarBuilder carBuilder = new Car.CarBuilder();
Car car = carBuilder.production("美国生产").length(20).type("奔驰").build();
System.out.println("car = " + car);
}
}
测试结果如下:
car = Car{production='美国生产', length=20, type='奔驰'}
Process finished with exit code 0
通过这个简单案例可以帮助理解构建者模式,在 Spring 中有很多地方使用到构建者模式。