软件设计之生成器模式
类图

代码
package test; import java.util.ArrayList; import java.util.List; public class Test4 { public static void main(String[] args) { Director director=new Director(); Builder builder=new Builder1(); director.Construct(builder); Product product=builder.getResult(); product.show(); Builder builder2=new Builder2(); director.Construct(builder2); Product product2=builder2.getResult(); product2.show(); } } class Product{ List<String> list=new ArrayList<String>(); public void add(String part) { list.add(part); } public void show() { for(String s:list) { System.out.print(s+" "); } System.out.println(); } } class Director{ public void Construct(Builder builder){ builder.BuilderPart(); } } abstract class Builder{ abstract public void BuilderPart(); abstract public Product getResult(); } class Builder1 extends Builder{ Product product=new Product(); @Override public void BuilderPart() { product.add("A"); product.add("B"); product.add("C"); } @Override public Product getResult() { return product; } } class Builder2 extends Builder{ Product product=new Product(); @Override public void BuilderPart() { product.add("A"); product.add("B"); } @Override public Product getResult() { return product; } }

浙公网安备 33010602011771号