定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
使用场景
- 对象参数多,且很多参数有默认值
- 产品类中,调用顺序不同产生了不同的作用
- 多个部位、零件装配到对象中,产生的结果又不同
- 不同的执行顺序,产生不同的结果
Android模式下的Builder模式
源码中常用到Builder模式的是AlertDialog.Builder。
例子:
//工厂函数
public class FactoryManager{
private int p1;
private int p2;
FactoryManager(int p1, int p2){
this.p1 = p1;
this.p2 = p2;
};
public static FactoryManagerBuilder builder(){
return FactoryManagerBuilder();
}
//todo:具体功能函数
public void func1(){
....
}
}
//构造工厂类
public class FactoryManagerBuilder{
private int p1;
private int p2;
FactoryManagerBuilder(){
}
public static FactoryManagerBuilder setP1(int p1){
this.p1 = p1;
return this;
}
public static FactoryManagerBuilder setP2(int p2){
this.p2 = p2;
return this;
}
public static FactoryManager build(){
return new FactoryManager(p1,p2);
}
}
//链式调用
FactoryManager.builder()
.setP1(1)
.setP2(2)
.build();