假如你组装一台电脑,电脑是由许多部分组成的(cpu,主板,显卡,声卡,网卡,键盘,鼠标),虽然每个部分有许多选择,我们可以组装成百上千种不同的电脑,但是我们可以将其中的一些共性抽取出来,构成一种固定的模板。
代码举例:
public interface Builder {
void buildPartA();
void buildPartB();
void buildPartC();
Product getResult();
}
//具体建造工具
public class ConcreteBuilder implements Builder {
Part partA, partB, partC;
public void buildPartA() {
//这里是具体如何构建partA的代码
};
public void buildPartB() {
//这里是具体如何构建partB的代码
};
public void buildPartC() {
//这里是具体如何构建partB的代码
};
public Product getResult() {
//返回最后组装成品结果
};
}
//建造者
public class Director {
private Builder builder;
public Director( Builder builder ) {
this.builder = builder;
}
public void construct() {
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
public interface Product { }
public interface Part { }