内容由B站UP主动力节点产出,本文仅作为学习笔记
建造者设计模式
定义:将对象的创建和属性赋值分离,建造的过程不需要知道,只需要通过构建者去操作。
仍以小汽车为例:
public class Car{
private String basePlate;
private String door;
private Sting frame;
//... setter & getter constractor
}
public abstract class Builder {
public abstract void buildBasePlate(String basePlate);
public abstract void buildDoor(String door);
public abstract void buildFrame(String frame);
public abstract Car makeCar();
}
public class CarBuilder extends Builder{
Car car = new Car();
@Override
public void buildBasePlate(String basePlate){
car.setBasePlate(basePlate);
}
@Override
public void buildDoor(String door){
car.setBasePlate(door);
}
@Override
public void buildFrame(String frame){
car.setBasePlate(frame);
}
@Override
public Car makeCar(){
return car;
}
}
public class Engineer{
private CarBuilder carBuilder;
public void setCarBuilder(CarBuilder carBuilder) {
this.carBuilder = carBuilder;
}
public Car makeCar(String basePlate, String door, String frame) {
carBuilder.buildBasePlate(basePlate);
carBuilder.buildDoor(door);
carBuilder.buildFrame(frame);
return carBuilder.makeCar();
}
}
总结:作者个人理解建造者设计模式的核心就是通过构建抽象建造者Builder + 实例建造者CarBuilder
掩饰对象的构建过程与赋值过程,设计一个实例构建者Engineer
来完成对象的构造。