zoukankan      html  css  js  c++  java
  • 【Effective Java】2、构造参数过多的时候

    package cn.xf.cp.ch02.item2;
    
    /**
     * 
     * 功能:当我们的构造参数有很多,超出可控范围的时候,用build模式 时间:下午8:25:05 文件:NutritionFacts.java
     * 
     * @author Administrator
     *
     */
    public class NutritionFacts
    {
        private final int    param1;
        private final int    param2;
        private final int    param3;
        private final int    param4;
        private final int    param5;
        private final int    param6;
        private final int    param7;
    
        public static void main(String[] args)
        {
            // 初始化NutritionFacts
            NutritionFacts test = new NutritionFacts.Builder(1, 2).param3(3).param4(4).param5(5).param6(6).param7(7)
                    .build();
        }
    
        private NutritionFacts(Builder build)
        {
            param1 = build.param1;
            param2 = build.param2;
            param3 = build.param3;
            param4 = build.param4;
            param5 = build.param5;
            param6 = build.param6;
            param7 = build.param7;
        }
    
        public static class Builder
        {
            private final int    param1;
            private final int    param2;
            private int            param3    = 0;
            private int            param4    = 0;
            private int            param5    = 0;
            private int            param6    = 0;
            private int            param7    = 0;
    
            public Builder(int param1, int param2)
            {
                this.param1 = param1;
                this.param2 = param2;
            }
    
            public Builder param3(int val)
            {
                param3 = val;
                return this;
            }
    
            public Builder param4(int val)
            {
                param3 = val;
                return this;
            }
    
            public Builder param5(int val)
            {
                param3 = val;
                return this;
            }
    
            public Builder param6(int val)
            {
                param3 = val;
                return this;
            }
    
            public Builder param7(int val)
            {
                param3 = val;
                return this;
            }
    
            public NutritionFacts build()
            {
                return new NutritionFacts(this);
            }
        }
    }
  • 相关阅读:
    python json 和 pickle的补充 hashlib configparser logging
    go 流程语句 if goto for swich
    go array slice map make new操作
    go 基础
    块级元素 行内元素 空元素
    咽炎就医用药(慢性肥厚性咽炎)
    春季感冒是风寒还是风热(转的文章)
    秋季感冒 咳嗽 怎么选药
    解决IE浏览器“无法显示此网页”的问题
    常用的 css 样式 记录
  • 原文地址:https://www.cnblogs.com/cutter-point/p/5840167.html
Copyright © 2011-2022 走看看