【Android】一个例子解释创建者模式

来源:互联网 发布:淘宝网包邮服务 编辑:程序博客网 时间:2024/06/11 11:06
public class TargetClass(){//所有变量都要是private final的private final String name;private final int id;private final boolean flag;//私有化构造函数,不对外暴露private TargetClass(Builder builder){    this.name = builder.name;    this.id = builder.id;    this.flag = builder.flag;}public String getName(){return name;}public int getId(){return id;}public boolean isFlag(){    return flag;}//使用内部类创建构造者//内部类可以调用自己的私有方法//因此可以通过内部类来调用上面私有化的构造方法public static class Builder(){    //也是必须是private final的    private final String name;    private final int id;    private final boolean flag;    public Builder(){    }    //为了实现链式调用,每次都返回Builder对象    public Builder name(String name){        this.name = name;        return this;    }     public Builder id(int Id){        this.id = Id;        return this;    }    public Builder isFlag(boolean isFlag){    this.flag = isFlag;    return this;    }    //创建TargetClass的对象    public TargetClass build(){        return new TargetClass(this);    }    }}

调用的时候只需要这样即可优雅的创建TargetClass的实例:

TargetClass target = new TargetClass.Builder()                    .name("abc")                    .id(123)                    .isFlag(true)                    .build();
原创粉丝点击