意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
理解
建造者模式,主要是为了将产品的构建和表示分开,从而增强可扩展性。具体建造者类与产品类一一对应,指导者类通过创建建造者对象,进一步封装建造者类。
模板
//Director
public class Director {
public Builder builder = new ConcreteBuilder();
public Product construct() {
builder.buildPart();
return builder.getResult();
}
}
//Abstract builder
public interface Builder {
void buildPart();
}
//Concrete builder
public class ConcreteBuilder implements Builder {
public Product product = new Product();
public void buildPart() {
}
public Product getResult() {
return product;
}
}
//Product
public class Product {
}