建造者模式
//建造者模式
//CopyRight(C)CAnca Software Office.
//Created by CAnca.
import java.util.*;
public class BuilderMode{
public static void main(String[] args){
Director director = new Director();
ConcreteBuilder1 builder1 = new ConcreteBuilder1();
director.construct(builder1);
Product product1 = builder1.getResult();
product1.show();
ConcreteBuilder2 builder2 = new ConcreteBuilder2();
director.construct(builder2);
Product product2 = builder2.getResult();
product2.show();
}
}
class Director{
public void construct(Builder builder){
builder.builderPart1();
builder.builderPart2();
}
}
abstract class Builder{
abstract void builderPart1();
abstract void builderPart2();
abstract Product getResult();
}
class ConcreteBuilder1 extends Builder{
private Product product = new Product();
public void builderPart1(){
product.add("鸡蛋");
}
public void builderPart2(){
product.add("猪肉");
}
public Product getResult(){
return product;
}
}
class ConcreteBuilder2 extends Builder{
private Product product = new Product();
public void builderPart1(){
product.add("牛奶");
}
public void builderPart2(){
product.add("香蕉");
}
public Product getResult(){
return product;
}
}
class Product{
private ArrayList array = null;
public Product(){
array = new ArrayList();
}
public void add(String value){
array.add(value);
}
public void show(){
for(int i = 0 ; i < array.size() ; i++){
System.out.println("购买商品:" + (i+1) + "、" + array.get(i));
}
}
}