建造者模式定义
将一个复杂对象的构建过程与它的表示分离。
适用场景
当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。
@Data
public class Computer {
private String cpu;
private int usbCount;
public static void main(String[] args) {
Computer computer1 = new Builder().addCpu("Intel").addUsbCount(4).build();
Computer computer2 = new Builder().addUsbCount(3).addCpu("AMD").build();
}
}
public class Builder {
private Computer computer = new Computer();
public Builder addCpu(String cpu){
computer.setCpu(cpu);
return this;
}
public Builder addUsbCount(int usbCount){
computer.setUsbCount(usbCount);
return this;
}
public Computer build(){
return computer;
}
}
Spring 中应用
BeanDefinitionBuilder
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.build();