• The Builder pattern simulates named optional parameters(Java)


    the Builder pattern is a good choice when designing classes whose constructors or static factories would have more than a handful of parameters.

    /**
     * Created by xfyou 2017/5/27 14:41 14:42.
     * The Builder pattern simulates named optional parameters
     */
    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 values
            private int calories = 0;
            private int fat = 0;
            private int carbohydrate = 0;
            private int sodium = 0;
    
            public Builder(int servingSize, int servings) {
                this.servingSize = servingSize;
                this.servings = servings;
            }
    
            public Builder calories(int val) {
                this.calories = val;
                return this;
            }
    
            public Builder carbohydrate(int val) {
                this.carbohydrate = val;
                return this;
            }
    
            public Builder sodium(int val) {
                this.sodium = val;
                return this;
            }
    
            public NutritionFacts build() {
                return new NutritionFacts(this);
            }
        }
    
        public NutritionFacts(Builder builder) {
            this.calories = builder.calories;
            this.carbohydrate = builder.carbohydrate;
            this.fat = builder.fat;
            this.servings = builder.servings;
            this.servingSize = builder.servingSize;
            this.sodium = builder.sodium;
        }
    
        public int getServingSize() {
            return servingSize;
        }
    
        public int getServings() {
            return servings;
        }
    
        public int getCalories() {
            return calories;
        }
    
        public int getFat() {
            return fat;
        }
    
        public int getSodium() {
            return sodium;
        }
    
        public int getCarbohydrate() {
            return carbohydrate;
        }
    }
    

      

  • 相关阅读:
    LeetCode 88. Merge Sorted Array
    LeetCode 75. Sort Colors
    LeetCode 581. Shortest Unsorted Continuous Subarray
    LeetCode 20. Valid Parentheses
    LeetCode 53. Maximum Subarray
    LeetCode 461. Hamming Distance
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 976. Largest Perimeter Triangle
    LeetCode 1295. Find Numbers with Even Number of Digits
    如何自学并且系统学习计算机网络?(知乎问答)
  • 原文地址:https://www.cnblogs.com/frankyou/p/6912992.html
Copyright © 2020-2023  润新知