1、建造者模式的定义
将复杂对象的构建和表示分离开,使得相同的构建顺序可以实现不同的表示
2、建造者模式的实现要点
3、应用场景
多个部件或零件,都可以装配到一个对象中(某个类的构造函数入参多于3个,且包含可选参数)
相同的方法,不同的执行顺序,会产生不同的结果
4、实现举例
public class Computer {
private String cpu;
private String ram;
private String mouse;//可选
private String keyboard;//可选
private String display;//可选
private Computer(Builder builder){
this.cpu = builder.cpu;
this.ram = builder.ram;
this.mouse = builder.mouse;
this.keyboard = builder.keyboard;
this.display = builder.display;
}
public static class Builder{
private String cpu;
private String ram;
private String mouse;//可选
private String keyboard;//可选
private String display;//可选
public Builder(String cpu,String ram){
this.cpu = cpu;
this.ram = ram;
}
public Builder setMouse(String mouse) {
this.mouse = mouse;
return this;
}
public Builder setKeyboard(String keyboard){
this.keyboard = keyboard;
return this;
}
public Builder setDisplay(String display){
this.display = display;
return this;
}
public Computer build(){
return new Computer(this);
}
}
public static void main(String[] args) {
Computer computer = new Computer.Builder("intel", "samsung")
.setMouse("logic")
.setKeyboard("logical")
.setDisplay("Lenovo")
.build();
}
}