1 定义
建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式又叫生成器模式,使用建造者模式,用户只需关心需要建造对象的类型,而具体建造的过程和细节无需知晓。
UML类图为:
建造者模式的4个角色:
- 产品类:具体产品,有多个模块(部件)构成
- 抽象的建造者:提供构建一个产品所需的抽象模块(部件),规范产品的组建。
- 具体的建造者:实现抽象的建造者,并且返回一个组建好的对象。
- 指挥者:负责安排已有的模块顺序,告诉Builder开始建造。
2 建造者模式的通用代码
- Product类
// 产品类
class Product{
// 产品由多个部分组成
}
- 抽象建造者类
// 抽象建造者
abstract class Builder{
public abstract void partA();
public abstract void partB();
public abstract Product builderProduct();
}
- 具体建造者类
// 具体建造者
class ConcreteBuilder extends Builder{
Product product = new Product();
@Override
public void partA() {
// 建造产品的A部件
}
@Override
public void partB() {
// 建造产品的B部件
}
@Override
public Product builderProduct() {
return this.product;
}
}
- 指挥者类
// 指挥者类
class Director{
public Product builder(Builder builder){
builder.partA();
builder.partB();
return builder.builderProduct();
}
}