Android 构建者模式(Builder)

这样吧,这次先上代码,再叙述

public class Student {
  private String name;
  private int age;
  private Student(Builder builder){
    this.name=builder.name;
    this.age=builder.age;
  }  
    public String getName(){
        return name;
      }  
    public void setName(String name){
        this.name = name;  
    }  
    public int getAge(){
        return age;
      }  
    public void setAge(int age){
        this.age = age;
      } 

    static class Builder{
        private String name;
        private int age;
        public Builder name(String name){
          this.name=name;
          return this;
        }
        public Builder age(int age){
          this.age=age;
          return this;
        }
        public Student build(){
          return new Student(this);
        }
      }
}

其实大体是这样设计得

  • 在实体类中有一些属性,然后在其内部静态类Builder中也有一样的属性
  • 将实体类中的构造方法私有化
  • 实体类由Builder构建出来,实体类中的属性值由构造时传入的Builder对象为其赋值
  • Builder的每个方法都是给自己的属性赋值,并返回自己Builder的引用

达到上面4点,则在构建时就可以这样写

Student.Builder builder=new Student.Builder();
Student student=builder
  .name("小明")
  .age(10)
  .build();

很爽吧…nice

posted @ 2017-08-14 09:11  潇风寒月  阅读(11)  评论(0)    收藏  举报