import java.util.ArrayList;
interface Builder{
public void buildPartA();
public void buildPartB();
public void buildPartC();
public Product getProduct();
}
class Product{
private ArrayList<String> parts=new ArrayList<String>();
public void add(String part){
parts.add(part);
}
public void show(){
System.out.println("Product有以下几部分构成:");
for(String s:parts){
System.out.println(s);
}
}
}
class Worker implements Builder{
private Product product;
public void buildPartA() {
product=new Product();
product.add("A部分");
}
public void buildPartB() {
product.add("B部分");
}
public void buildPartC(){
product.add("C部分");
}
public Product getProduct(){
return product;
}
}
class Designer{
public void order(Builder builder){
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
public class Test {
public static void main(String[] args) {
Designer designer=new Designer();
Builder builder=new Worker();
designer.order(builder);
Product product =builder.getProduct();
product.show();
}
}
输出结果如下:
Product有以下几部分构成:
A部分
B部分
C部分
从这个例子我们可以看出Builder模式,是把建造对象的过程分成一部分一部分来完成的。
小结:Builder模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。