源自:http://www.blogjava.net/flustar/archive/2007/12/03/builder.html
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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。