建造者模式属于创建型设计模式,该模式使用多个简单的对象一步一步构建成一个复杂的对象。
什么时候使用建造者模式
创建一个对象,最常用的就是new关键字调用类的构造函数来完成,但是当构造函数的参数非常多的时候,代码的可读性和易用性就会变差,这个时候我们就可以使用建造者模式。
简单使用
class Mobile {
private final String cpu; //处理器必须
private final int memory; //内存必须
private final boolean nfc; //是否支持nfc非必须
private final boolean isFingerprintUnLock; //是否支持指纹解锁非必须
public Mobile(Builder builder) {
this.cpu = builder.cpu;
this.memory = builder.memory;
this.nfc = builder.nfc;
this.isFingerprintUnLock = builder.isFingerprintUnLock;
}
public static class Builder {
private String cpu;
private int memory;
private boolean nfc;
private boolean isFingerprintUnLock;
public Builder(String cpu, int memory) {
this.cpu = cpu;
this.memory = memory;
}
public Builder setNfc(boolean nfc) {
this.nfc = nfc;
return this;
}
public Builder setFingerprintUnLock(boolean fingerprintUnLock) {
isFingerprintUnLock = fingerprintUnLock;
return this;
}
public Mobile build(){
return new Mobile(this);
}
}
@Override
public String toString() {
return "Mobile{" +
"cpu='" + cpu + '\'' +
", memory=" + memory +
"G, nfc='" + nfc + '\'' +
", isFingerprintUnLock=" + isFingerprintUnLock +
'}';
}
}
class MobileTest {
public static void main(String[] args) {
Mobile mobile = new Mobile.Builder("骁龙888", 12)
.setNfc(true)
.build();
System.out.println(mobile.toString());
}
}