建造者模式

第一步:创建一个产品,及产品的各个部件;

public class Product {

    List<String> parts = new ArrayList<String>();

    public void addPart(String part) {
        if (StringUtils.isNotBlank(part)) {
            parts.add(part);
        }
    }

    public void showParts() {
        for (String part : parts) {
            System.out.println(part);
        }
    }
}

第二步:创建一个抽象建造者,把产品的各个部件分离出来分别构建

public abstract class AbstractBuilder {

    public abstract void buildA();
    public abstract void buildB();
    public abstract Product getProduct();
}

第三步:创建具体建造者

public class ConcreteBuilder1 extends AbstractBuilder {

    private Product product;
    @Override
    public void buildA() {
        product.addPart("部件A");
    }

    @Override
    public void buildB() {
        product.addPart("部件B");
    }

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

}
public class ConcreteBuilder2 extends AbstractBuilder {

    private Product product;
    @Override
    public void buildA() {
        product.addPart("部件C");
    }

    @Override
    public void buildB() {
        product.addPart("部件D");
    }

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

}

第四步:创建指挥者

public class Director {

    public void control(AbstractBuilder builder) {
        builder.buildA();
        builder.buildB();
    }
}

第五步:指挥者指挥创建者创建产品,完成不同产品创建

public static void main(String[] args) {
        Director director = new Director();
        AbstractBuilder builder1 = new ConcreteBuilder1();
        AbstractBuilder builder2 = new ConcreteBuilder2();
        director.control(builder1);
        Product p1 = builder1.getProduct();
        p1.showParts();
        director.control(builder2);
        Product p2 = builder2.getProduct();
        p2.showParts();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值