zoukankan      html  css  js  c++  java
  • 构造器优化需要多个构造器的类(建造者模式)

    package com.wjy.effective;
    
    
    
    public class BuilderConstr {
        private  final int age;
        private  final int num;
        private  final int size;
        
        public int getAge() {
            return age;
        }
    
        public int getNum() {
            return num;
        }
    
        public int getSize() {
            return size;
        }
    
        public static class Builder{
            private final int age;
            private final int num;
            
            private int size=0;
            
            public Builder(int age,int num){
                this.age=age;
                this.num=num;
            }
            
            public Builder size(int size){
                this.size=size;
                return this;
            }
            
            public BuilderConstr build(){
                return new BuilderConstr(this);
            }
        }
        
        public BuilderConstr(Builder builder){
            age=builder.age;
            num=builder.num;
            size=builder.size;
        }
    }

    客户端代码:

    package com.wjy.effective;
    
    import com.wjy.effective.BuilderConstr.Builder;
    
    /**
     * @author wjy
     *
     */
    public class TestBuildConstr {
        public static void main(String args[]){
            BuilderConstr builderConstr=new BuilderConstr.Builder(23, 1).size(88).build();
            
            //以上代码等价于以下三行代码代码:
    //        Builder builder=new BuilderConstr.Builder(23, 1);
    //        builder=builder.size(88);
    //        BuilderConstr builderConstr=builder.build();
            
            
            
            System.out.println("age: "+builderConstr.getAge());
            System.out.println("num: "+builderConstr.getNum());
            System.out.println("size: "+builderConstr.getSize());
        }
    }

    运行结果:

    age: 23
    num: 1
    size: 88
  • 相关阅读:
    Window 下配置ChromeDriver(简单4步完成)[转]
    selenium之 chromedriver与chrome版本映射表(更新至v2.46)[转]
    学习网站
    如何理解python中的类和方法(转)
    面试题整理20191127
    mysql 慢查询
    python学习--代码组织实例
    ubuntu下安装Matlab
    SkinPP for VC
    C++中的4个类型转换关键字
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/duogouzaohanshu.html
Copyright © 2011-2022 走看看