介绍
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
由创建者隐藏该产品的组装过程,如果需要改变一个产品的内部表示只需要再定义一个具体的建造者就可以了。
代码示例
Director 作为一个指挥者,可以在构造方法中规则装配流程。
Builder 作为建造者,可以设置不同的属性,让Director 的表示有所不同。
public class Director {
// 字段A
private int fileA;
// 字段B
private int fileB;
public Director(Builder builder) {
this.fileA = builder.getFileA();
this.fileB = builder.getFileB();
}
public static class Builder {
// 字段A
private int fileA;
// 字段B
private int fileB;
public int getFileA() {
return fileA;
}
public Builder setFileA(int fileA) {
this.fileA = fileA;
return this;
}
public int getFileB() {
return fileB;
}
public Builder setFileB(int fileB) {
this.fileB = fileB;
return this;
}
public Director bulid() {
return new Director(this);
}
}
}
应用场景
产品的装配过程非常复杂,使用建造者模式可以将装配流程固化,而建造者的不同可以实现不同的表示。比如Android里面的Dialog,通过Builder的设置,对话框的样式功能不同的表示。