5-建造者模式-创建模式

文章目录


参考:大话设计模式

1.定义

Builder,将一个复杂对象的构建和它的表示分开,使得同样的构建过程可以不同的表示。
在这里插入图片描述

public class Product {
    // 模拟产品部件
    private List<String> parts = new ArrayList<>();

    public void add(String part) {
        this.parts.add(part);
    }

    public void show() {
        for (String part : parts) {
            System.out.println(part);
        }
    }
}
public abstract class Builder {
    public abstract void buildA();

    public abstract void buildB();

    public abstract Product getProduct();
}

public class ConcreteBuilder1 extends Builder {
    private Product product = new Product();

    @Override
    public void buildA() {
        product.add("part A");
    }

    @Override
    public void buildB() {
        product.add("part B");
    }

    @Override
    public Product getProduct() {
        return this.product;
    }
}
public class ConcreteBuilder2 extends Builder {
    private Product product = new Product();

    @Override
    public void buildA() {
        product.add("part x");
    }

    @Override
    public void buildB() {
        product.add("part y");
    }

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

public class Director {
    // 建造过程
    public void construct(Builder builder) {
        builder.buildA();
        builder.buildB();
    }
}
public class Client {
    public static void main(String[] args) {
        Builder builder1 = new ConcreteBuilder1();
        Director director = new Director();
        director.construct(builder1);

        Product product = builder1.getProduct();
        product.show();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值