建造者模型产生对象

/**
 * @program: demo1
 * @description: 构造器
 * @create: 2019-04-09 14:47
 **/
public class NutritionFacts {
    private final int servingSize;
    private final int serving;
    private final int calories;
    private final int fat;
    private final int sodium;
    private final int carbohydrate;

    public static class Builder{
        private final int servingSize;
        private final int serving;
        private  int calories = 0;
        private  int fat = 0;
        private  int sodium = 0;
        private  int carbohydrate = 0;

        public Builder(int servingSize, int serving) {
            this.servingSize = servingSize;
            this.serving = serving;
        }
        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;
         serving = builder.serving;
         calories = builder.calories;
         fat = builder.fat;
         sodium = builder.sodium;
         carbohydrate = builder.carbohydrate;
    }
}
public class demo2 {
    public static void main(String[] args) {
        NutritionFacts builder = new NutritionFacts.Builder(240, 8).calories(60).build();
        System.out.println("builder = " + builder);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_23834457/article/details/89149928