类型:创建模式
定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.

 

Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体

构建细节.

 

为何使用?

是为了将构建复杂对象的过程和它的部件解耦.注意: 是解耦过程和部件.因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:

车轮 方向盘 发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技术),Builder模式就是为了将部件和组装过程分开.

 

 

模式UML图

 

 

 

下面举一个例子来说明这个模式的使用,代码如下:
import java.util.ArrayList;

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);
  }
 }
}

interface Builder
{
 public void buildPartA();
 public void buildPartB();
 public void buildPartC();
 public Product getProduct();
}

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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心
每个部件是如何组装的。

 

更多推荐