建造者模式设计笔记

public class Product {
    private String partA;
    private String partB;
    private String partC;

    public void setPartA(String partA) {
        this.partA = partA;
    }
    public void setPartB(String partB) {
        this.partB = partB;
    }

    public void setPartC(String partC) {
        this.partC = partC;
    }
    public void show(){
        System.out.println("******");
        System.out.println(partA);
        System.out.println(partB);
        System.out.println(partC);
    }
}

public abstract class Builder {
    protected Product product=new Product();

    public abstract void buildPartA();

    public abstract void buildPartB();

    public abstract void buildPartC();

    public Product getResult(){
        return product;
    }
}
public class ConcreteBuilder extends Builder{
    @Override
    public void buildPartA() {
        product.setPartA("建造partA");
    }

    @Override
    public void buildPartB() {
       product.setPartB("建造partB");
    }

    @Override
    public void buildPartC() {
       product.setPartC("建造partC");
    }
}
public class Director {
    private Builder builder;
    public Director(Builder builder){
        this.builder=builder;
    }
    public Product construct(){
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}
public class Test {
    public static void main(String[] args) {
        Builder builder=new ConcreteBuilder();
        Director director=new Director(builder);
        Product product=director.construct();
        builder.getResult();
        product.show();
    }
}

 


版权声明:本文为u010041208原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。