六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 79|回复: 0

Builder建造者模式

[复制链接]

升级  30%

21

主题

21

主题

21

主题

秀才

Rank: 2

积分
95
 楼主| 发表于 2013-1-27 04:35:12 | 显示全部楼层 |阅读模式
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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表