设计模式-建造者模式
前言
先说一下传统的比较完整的建造者模式的构成,再说一下实际中比较多用到的简化版。
完整的建造者模式
完整的建造者模式通常包括四个大部分,分别是:产品类、建造者抽象类、建造者实现类、指挥者。这种比较完整的建造者模式的好处是可以很轻易的扩展建造方式,只需要增加一个建造者实现类即可。
简化版
实际中我们用的比较多的通常都是只有一个建造者的情况,一般会直接把建造者写成静态内部类的形式,可以链式创建一个对象。
代码如下:
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());
}
其实设计模式很多时候并不用特别死板的运用,主要是思想。