builder

作者: 喧嚣的风儿 | 来源:发表于2016-09-01 00:02 被阅读17次

优点:构造需要多个参数时可显著改善可读性

原理:
定义一个 static 类型的 内部类 Builder,并且Builder类内部的属性就是我们要赋值的属性 ---> 通过各个方法把我们要赋的值封装到 Builder的对象中,返回 this,这样就可以使用链式的结构 ---> 最后定义一个 build() 方法,利用封装了各个参数的 Builder 对象创建目标对象。

例子:

public class Hero{
    String name;
    BigDecimal atk;
   public Hero(Builder builder){
       this.name= builder.name;
       this.atk = builder.atk;
   }
   public static class Builder{
       private String name;
       private BigDecimal atk;
       public Builder setName(String name){
           this.name= name;
           return this;
       }
       public Builder setATK(BigDecimal atk){
           this.atk= atk;
           return this;
       }
       public Hero build(){
           return new Hero(this);
       }
   }
}

使用:

new Builder().setATK(new BigDecimal(5)).setName("小悟饭").build();

相关文章

网友评论

      本文标题:builder

      本文链接:https://www.haomeiwen.com/subject/sojcettx.html