1. 程式人生 > 實用技巧 >JDBC->MyBatis->Spring

JDBC->MyBatis->Spring

前言

先說一下傳統的比較完整的建造者模式的構成,再說一下實際中比較多用到的簡化版。

完整的建造者模式

完整的建造者模式通常包括四個大部分,分別是:產品類、建造者抽象類、建造者實現類、指揮者。這種比較完整的建造者模式的好處是可以很輕易的擴充套件建造方式,只需要增加一個建造者實現類即可。

簡化版

實際中我們用的比較多的通常都是隻有一個建造者的情況,一般會直接把建造者寫成靜態內部類的形式,可以鏈式建立一個物件。

程式碼如下:

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

其實設計模式很多時候並不用特別死板的運用,主要是思想。