软件设计之生成器模式

类图

代码

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;
    }
}

 

posted @ 2023-10-26 21:46  辞楠  阅读(14)  评论(0)    收藏  举报