您的位置:首页 > 其它

大话设计模式笔记 建造者模式

2015-09-25 22:48 337 查看
建造者模式(Builder),将一个复杂对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,用户只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。



package Builder;

import java.util.ArrayList;

/**
* 产品类,由多个部件组成
*
*/
public class Product {

ArrayList<String> partList = new ArrayList<String>();

// 添加产品部件
public void add(String part) {
partList.add(part);
}

public void show() {
System.out.println("create product");
for (String string : partList) {
System.out.println(string);
}
}
}


package Builder;

/**
* 抽象建造者类,确定产品由两个部件PartA和PartB组成
* 并声明一个的到产品建造后结果的方法getResult
*
*/
public abstract class Builder {

public abstract void buildPartA();

public abstract void buildPartB();

public abstract Product getResult();
}


package Builder;

/**
* 具体建造者类
*
*/
public class ConcreteBuilder1 extends Builder {

private Product product=new Product();

@Override
public void buildPartA() {
product.add("A");
}

@Override
public void buildPartB() {
product.add("B");
}

@Override
public Product getResult() {
return product;
}

}


package Builder;

public class Director {

public void  construct(Builder builder) {
builder.buildPartA();
builder.buildPartB();
}

/**
* 客户端代码,客户不需要知道具体的建造过程
*/
public static void main(String[] args) {
Director director=new Director();
Builder b1=new ConcreteBuilder1();
director.construct(b1);
Product p1=b1.getResult();
p1.show();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: