建造者模式
概述
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
结构
优缺点
使用场景
实例
/**
* @author guomiaomiao
* @date 2021-09-04 下午9:46
*/
public class Phone {
private String cpu;
private String screen;
private String memory;
private String mainBoard;
private Phone(Builder builder) {
this.cpu = builder.cpu;
this.screen = builder.screen;
this.memory = builder.memory;
this.mainBoard = builder.mainBoard;
}
@Override
public String toString() {
return "Phone{" +
"cpu='" + cpu + '\'' +
", screen='" + screen + '\'' +
", memory='" + memory + '\'' +
", mainBoard='" + mainBoard + '\'' +
'}';
}
public static final class Builder {
private String cpu;
private String screen;
private String memory;
private String mainBoard;
public Builder cpu(String cpu) {
this.cpu = cpu;
return this;
}
public Builder screen(String screen) {
this.screen = screen;
return this;
}
public Builder memory(String memory) {
this.memory = memory;
return this;
}
public Builder mainBoard(String mainBoard) {
this.mainBoard = mainBoard;
return this;
}
public Phone build() {
return new Phone(this);
}
}
public static void main(String[] args) {
Phone phone = new Phone.Builder()
.cpu("intel")
.screen("三星")
.memory("金士顿")
.mainBoard("华硕")
.build();
System.out.println(phone);
}
}