首页 / 软件开发 / 数据结构与算法 / 设计模式学习笔记(十二)—Builder建造者模式
        
            设计模式学习笔记(十二)—Builder建造者模式2011-02-04 blogjava 蝸ゼ牜ご赽跑Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。刚接触到这个模式的时候,实在搞不明白它的意思,有什么用。于是,上网google了一圈,终于得到这个大家普遍认可的解释:建造模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。下面举一个例子来说明这个模式的使用,代码如下: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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。