认识
建造者模式的结构:产品角色、抽象建造者、具体建造者、指挥者。相比抽象工厂模式,省掉了抽象产品,多了指挥者。
伪实现
产品
class Product{
private String partA;
private String partB;
private String partC;
//get set省略
public void show(){
展示产品特性
}
}
抽象建造者
abstract class Builder{
//创建产品对象
protected Product product=new Product();
public abstract void buildPartA();
public abstract void buildPartB();
public abstract void buildPartC();
//返回产品对象
public Product getResult(){
return product;
}
}
具体建造者
public class ConcreteBuilder extends Builder{
public void buildPartA(){
product.setPartA("建造 PartA");
}
public void buildPartB(){
product.setPartB("建造 PartB");
}
public void buildPartC(){
product.setPartC("建造 PartC");
}
}
指挥者
class Director{
private Builder builder;
public Director(Builder builder){
this.builder=builder;
}
//产品构建与组装方法
public Product construct(){
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
return builder.getResult();
}
}
外部调用
main
//实例化具体建造者
Builder builder=new ConcreteBuilder();
//指挥者拿到具体建造者
Director director=new Director(builder);
//指挥者建造出来产品
Product product=director.construct();
//产品展示
product.show();