首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

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

2014-01-15 
构造器优化需要多个构造器的类(建造者模式)package com.wjy.effectivepublic class BuilderConstr {priva

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

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

?

热点排行