Skip to content

Instantly share code, notes, and snippets.

@sajjadyousefnia
Created October 31, 2018 18:10
Show Gist options
  • Save sajjadyousefnia/8cbd6bed6fc93b76319ec7db9f050761 to your computer and use it in GitHub Desktop.
Save sajjadyousefnia/8cbd6bed6fc93b76319ec7db9f050761 to your computer and use it in GitHub Desktop.
// Builder Pattern
public class NutritionFacts {
private final int servingSize;
private final int servings;
private final int calories;
private final int fat;
private final int sodium;
private final int carbohydrate;
public static class Builder {
// Required parameters
private final int servingSize;
private final int servings;
// Optional parameters - initialized to default
private int calories= 0;
private int fat= 0;
private int sodium= 0;
private int carbohydrate = 0;
public Builder(int servingSize, int servings) {
this.servingSize = servingSize;
this.servings= servings;}
public Builder calories(int val){calories = val;
return this;
public Builder fat(int val)
{ fat = val;
return this;
public Builder sodium(int val)
{ sodium = val;
return this;
public Builder carbohydrate(int val)
{ carbohydrate = val; return this;
public NutritionFacts build() {
return new NutritionFacts(this);
}
}
private NutritionFacts(Builder builder) {
servingSize = builder.servingSize;
servings= builder.servings;
calories= builder.calories;
fat= builder.fat;
sodium= builder.sodium;
carbohydrate = builder.carbohydrate;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment