构建者模式:
简单来说就是对象的表现与构建分离开来,即把对象的使用分为两个步骤:
第一步输入各种参数进行构建,此时只能设置属性不能操作业务动作;
每个方法的返回值都是外部类的对象。所以可以一直.调用下去设置值 直到。build方法不饿调用s
通过.Builder调用内部类选择不同的方法设置属性,并把值储存起来用final修饰,保证只会被赋值一次。
最后通过.build()方法 创建出外部类对象,
此时 外部类的变量已经被赋值,并且.build方法返回了本类的对象提供给外部。
这时进行第二步
通过返回的外部类对象 操作外部类方法 。
以下为代码的简单实现:
public class 外部类{
public final String name;
public final String age;
public final String sex;
//逻辑方法 返回this.
public startMusic(name){
}
public String getName(){
if(name != null){
逻辑代码
}
return this;
}
public String getAge(){
if(age != null){
逻辑代码
}
return this;
}
public String getSex(){
if(sex != null){
逻辑代码
}
return this;
//私有化的构造方法
public Person(Builder builder) {
this.name = builder.name;
this.sex= builder.sex;
this.age = builder.age;
}
//外部类.内部类调用
public static class Builder{
public String name;
public String cache;
public String sex;
//这些方法 就是选择性的赋值和业务逻辑 功能
public String post(String post){
this.post = post;
return this;
}
public String cache(String cache){
this.cache = cache;
return this;
}
public String setSex(String sex){
this.sex = sex;
return this;
}
public Person build() {
return new Person(this);
}
}
}
Android中会用到建造者模式的场合,一般是与异步操作有关的。
因为异步操作的等待时间较长,极有可能在等待过程中发生属性值变更的情况,
所以为了避免属性变化导致处理异常,就要引入建造者模式。