44 lines
1.7 KiB
Java
44 lines
1.7 KiB
Java
package builder;
|
|
|
|
public class House {
|
|
private final int rooms;
|
|
private final int floors;
|
|
private final boolean hasGarage;
|
|
private final boolean hasGarden;
|
|
private final boolean hasPool;
|
|
private final String roofType;
|
|
|
|
private House(Builder builder) {
|
|
this.rooms = builder.rooms;
|
|
this.floors = builder.floors;
|
|
this.hasGarage = builder.hasGarage;
|
|
this.hasGarden = builder.hasGarden;
|
|
this.hasPool = builder.hasPool;
|
|
this.roofType = builder.roofType;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "House{rooms=" + rooms + ", floors=" + floors
|
|
+ ", garage=" + hasGarage + ", garden=" + hasGarden
|
|
+ ", pool=" + hasPool + ", roof='" + roofType + "'}";
|
|
}
|
|
|
|
public static class Builder {
|
|
private int rooms = 1;
|
|
private int floors = 1;
|
|
private boolean hasGarage = false;
|
|
private boolean hasGarden = false;
|
|
private boolean hasPool = false;
|
|
private String roofType = "flat";
|
|
|
|
public Builder rooms(int rooms) { this.rooms = rooms; return this; }
|
|
public Builder floors(int floors) { this.floors = floors; return this; }
|
|
public Builder garage(boolean v) { this.hasGarage = v; return this; }
|
|
public Builder garden(boolean v) { this.hasGarden = v; return this; }
|
|
public Builder pool(boolean v) { this.hasPool = v; return this; }
|
|
public Builder roofType(String roofType) { this.roofType = roofType; return this; }
|
|
public House build() { return new House(this); }
|
|
}
|
|
}
|