您的位置:首页 > 产品设计 > UI/UE

设计模式学习笔记(十二)—Builder建造者模式

2008-09-27 11:22 671 查看
转贴自 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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: