Created
March 22, 2020 22:42
-
-
Save alivcor/40fc44c1b28286481944e113b24de245 to your computer and use it in GitHub Desktop.
Builder Pattern - Car
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Car { | |
private int modelYear; | |
private String modelName; | |
private String color; | |
private String manufacturer; | |
private double sellingPrice; | |
private String carType; | |
private Boolean isLuxury; | |
private Boolean isImported; | |
private String countryOfManufacture; | |
public static class Builder { | |
private int modelYear; | |
private String modelName; | |
private String color; | |
private String manufacturer; | |
private double sellingPrice; | |
private String carType; | |
private Boolean isLuxury; | |
private Boolean isImported; | |
private String countryOfManufacture; | |
public Builder modelYear(int modelYear) { | |
this.modelYear = modelYear; | |
return this; | |
} | |
public Builder modelName(String modelName) { | |
this.modelName = modelName; | |
return this; | |
} | |
public Builder color(String color) { | |
this.color = color; | |
return this; | |
} | |
public Builder manufacturer(String manufacturer) { | |
this.manufacturer = manufacturer; | |
return this; | |
} | |
public Builder sellingPrice(double sellingPrice) { | |
this.sellingPrice = sellingPrice; | |
return this; | |
} | |
public Builder carType(String carType) { | |
this.carType = carType; | |
return this; | |
} | |
public Builder isLuxury(Boolean isLuxury) { | |
this.isLuxury = isLuxury; | |
return this; | |
} | |
public Builder isImported(Boolean isImported) { | |
this.isImported = isImported; | |
return this; | |
} | |
public Builder countryOfManufacture(String countryOfManufacture) { | |
this.countryOfManufacture = countryOfManufacture; | |
return this; | |
} | |
public Builder(String modelName, String manufacturer){ | |
if (modelName == null || manufacturer == null) { | |
throw new NullPointerException("modelName or manufacturer cannot be null"); | |
} | |
this.modelName = modelName; | |
this.manufacturer = manufacturer; | |
} | |
public Car build() { | |
return new Car(this); | |
} | |
} | |
private Car(Builder builder) { | |
this.modelYear = builder.modelYear; | |
this.modelName = builder.modelName; | |
this.color = builder.color; | |
this.manufacturer = builder.manufacturer; | |
this.sellingPrice = builder.sellingPrice; | |
this.carType = builder.carType; | |
this.isLuxury = builder.isLuxury; | |
this.isImported = builder.isImported; | |
this.countryOfManufacture = builder.countryOfManufacture; | |
} | |
public int getModelYear(){ | |
return modelYear; | |
} | |
public String getModelName(){ | |
return modelName; | |
} | |
public String getColor(){ | |
return color; | |
} | |
public String getManufacturer(){ | |
return manufacturer; | |
} | |
public double getSellingPrice(){ | |
return sellingPrice; | |
} | |
public String getCarType(){ | |
return carType; | |
} | |
public Boolean getIsLuxury(){ | |
return isLuxury; | |
} | |
public Boolean getIsImported(){ | |
return isImported; | |
} | |
public String getCountryOfManufacture(){ | |
return countryOfManufacture; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment