关于传递多个参数时使用构建器demo

来源:互联网 发布:淘宝网店可以改名吗 编辑:程序博客网 时间:2024/06/06 20:54

一.需要构造的类

import java.util.Date;

/**
 * Created by c_lj on 17-2-14.
 */
public class ManyPara {
    private String  sname;
    private  int    code;
    private   int   num;
    private   Date  time;

    public static   class  Builder{
        private String  sname;
        private   int    code;
        private   int   num;
        private   Date  time;

        public  Builder(int code){
            this.code=code;
        }
        public Builder sname(String sname){
            this.sname=sname;
            return  this;
        }
        public Builder num(int  num){
            this.num=num;
            return  this;
        }
        public Builder time(Date  time){
            this.time=time;
            return  this;
        }
        public ManyPara build(){
            return  new ManyPara(this);
        }
    }
    private ManyPara(Builder builder){
        this.code=builder.code;
        this.sname=builder.sname;
        this.num=builder.num;
        this.time=builder.time;
    }

    public String getSname() {
        return sname;
    }

    public int getCode() {
        return code;
    }

    public int getNum() {
        return num;
    }

    public Date getTime() {
        return time;
    }

    @Override
    public String toString() {
        return "编码"+this.getCode()+"数量"+this.getNum()+"名字"+this.getSname()+"日期"+this.getTime();
    }
}

二.客户端测试代码

ManyPara manyPara=new ManyPara.Builder(12).num(12).sname("parall").time(new Date()).build();


三.利用构建器的优势

1)易于阅读代码(相比于重叠构造器)

2)更加安全(相比于空构造器)

四.使用场景

具有多个参数需要设置时(4个以上)

0 0
原创粉丝点击