设计模式-建造者模式

前言

先说一下传统的比较完整的建造者模式的构成,再说一下实际中比较多用到的简化版。

完整的建造者模式

完整的建造者模式通常包括四个大部分,分别是:产品类、建造者抽象类、建造者实现类、指挥者。这种比较完整的建造者模式的好处是可以很轻易的扩展建造方式,只需要增加一个建造者实现类即可。

简化版

实际中我们用的比较多的通常都是只有一个建造者的情况,一般会直接把建造者写成静态内部类的形式,可以链式创建一个对象。

代码如下:

class Product {

    private String partA;
    private String partB;
    private String partC;

    public String getPartA() {
        return partA;
    }

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

    public String getPartB() {
        return partB;
    }

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

    public String getPartC() {
        return partC;
    }

    public void setPartC(String partC) {
        this.partC = partC;
    }

    @Override
    public String toString() {
        return "Product{" +
                "partA='" + partA + '\'' +
                ", partB='" + partB + '\'' +
                ", partC='" + partC + '\'' +
                '}';
    }

    public static class Builder {

        private Product product = new Product();

        public Builder partA(String partA) {
            product.setPartA(partA);
            return this;
        }

        public Builder partB(String partB) {
            product.setPartB(partB);
            return this;
        }

        public Builder partC(String partC) {
            product.setPartC(partC);
            return this;
        }

        public Product build() {
            return product;
        }
    }
}

client使用的代码如下:

    public static void main(String[] argv) {
        Product product = new Product.Builder().partA("a").partB("b").partC("c").build();
        System.out.println(product.toString());
    }

其实设计模式很多时候并不用特别死板的运用,主要是思想。

posted on 2020-09-21 11:53  斜月三星一太阳  阅读(110)  评论(0编辑  收藏  举报