读书人

构造器优化急需多个构造器的类(建造者

发布时间: 2014-01-15 15:40:23 作者: rapoo

构造器优化需要多个构造器的类(建造者模式)

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: 23num: 1size: 88

?

读书人网 >互联网

热点推荐