1.什么是建造者模式
指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。
2.优缺点
优点:高内聚低耦合
缺点:维护成本大
3.适用场景
复杂产品的构建
4.角色
产品:
@Data
public class Car {
private String engine;
private String wheel;
public String info(){
return engine + wheel;
}
}
抽象建造者:
public abstract class Manufacturer {
protected Car car = new Car();
public abstract void setEngine();
public abstract void setWheel();
public Car carOne() {
return car;
}
}
建造者:
public class HzManufacturer extends Manufacturer {
@Override
public void setEngine() {
car.setEngine("宝马发动机");
}
@Override
public void setWheel() {
car.setWheel("宝马轮胎");
}
}
指挥者:
@Data
@AllArgsConstructor
public class CarAgentFactory {
private Manufacturer manufacturer;
public Car carOne(){
manufacturer.setEngine();
manufacturer.setWheel();
return manufacturer.carOne();
}
}
测试:
public class BuilderTest {
public static void main(String[] args) {
CarAgentFactory carAgentFactory = new CarAgentFactory(new HzManufacturer());
Car car = carAgentFactory.carOne();
System.out.println(car.info());
}
}