Builder模式是一步一步创建一个复杂对象的创建型模式。 Builder模式可以控制对象创建的流程,使得构建部件和过程可以自由拓展。
使用场景:
1、例如一个对象的构造参数比较复杂,其中一些参数是可选状态,这种情况可以考虑使用Builder模式。避免过多的使用setter方法。
2、在构建对象过程中,不同的构建执行顺序产生不同的作用。
Android中常见的builder模式实现----- AlertDialog.Builder
优点:
1、良好的封装性。
2、构造者独立,容易扩展。
缺点:
1、会产生多余的Builder对象,消耗内存。
简单实例Demo
public class Product {
private String name;
private int model;
private float price;
private Product(Builder builder) {
this.name = builder.name;
this.model= builder.model;
this.price = builder.price;
}
public static class Builder {
private String name;
private int model;
private float price;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder model(int model) {
this.model= model;
return this;
}
public Builder price(float price) {
this.price = price;
return this;
}
public Product build() {
return new Product(this);
}
}
}
调用
Product phone = new Product.Builder()
.name("phone")
.price(3000)
.model(12)
.build();