Builder模式

          Builder 模式主要用于如何 创建一个对象。例如,如果一个类有很多属性,比如说 : 

public class Teacher{
    private String id;
    private String name;
    private String sex;
    private String tel;
    …….
}

那么,我们有几种方法创建这个对象。
  1. 创建一个空对象,然后不停的 把属性 set 进去。
  2. 创建一个包含全部参数 的构造函数。new 对象的时候 就会变成如下形式:
    1. Teacher teacher = new Teacher(“1”,”tea”,”male”,”18620213358");

上面这两种方式都有一些缺点, 第一种的话 set 过多。第二种的话可读性会不太足。

以下介绍 Builder 模式 创建 对象。代码如下: 
public class Teacher{
    private String id;
    private String name;
    private String sex;
    private String tel;

    public Teacher(Builder builder){
        this.id = builder.id;
        this.name = builder.name;
        this.sex = builder.sex;
        this.tel = builder.tel;
    }
    public class Builder{
        private String id;
        private String name;
        private String sex;
        private String tel;

        public Builder id(String id){
            this.id = id;
            return this;
        }
        public Builder name(String name){
            this.name = name;
            return this;
        }
        public Builder sex(String sex){
            this.sex = sex;
            return this;
        }
        public Builder tel(String tel){
            this.tel = tel;
            return this;
        }
        public Teacher build(){
            return  new Teacher(this);
        }
     }
}

这样,创建对象的时候就变成了:

Teacher tea = new Teacher.Builder().id(“1”).name(“tea”).sex(“male”).tel(“18620213358”).build();

可读性会变好点。也显得高大上点。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值