每日一题-设计模式-谈谈你对建造者的理解【面试八股文】
建造者模式是一种创建型
设计模式,它允许你创建复杂对象的步骤独立于对象本身。
在Java中,建造者模式由一个包含多个方法的Builder类和一个需要构建的复杂对象类组成。Builder类负责设置复杂对象的各个部分,而复杂对象类则负责实际构建对象。
下面通过一个案例代码来演示下
// 复杂对象类
@Data
public class Car {
private String brand;
private String model;
private int year;
}
// Builder类
public class CarBuilder {
private Car car;
public CarBuilder() {
car = new Car();
}
public CarBuilder setBrand(String brand) {
car.setBrand(brand);
return this;
}
public CarBuilder setModel(String model) {
car.setModel(model);
return this;
}
public CarBuilder setYear(int year) {
car.setYear(year);
return this;
}
public Car build() {
return car;
}
}
// 使用建造者模式创建一个Car对象
public class Main {
public static void main(String[] args) {
Car car = new CarBuilder()
.setBrand("Toyota")
.setModel("Camry")
.setYear(2020)
.build();
System.out.println("Brand: " + car.getBrand());
System.out.println("Model: " + car.getModel());
System.out.println("Year: " + car.getYear());
}
}
建造者模式和工厂模式都是创建对象的设计模式,但它们有一些不同之处。
复杂对象
,这个对象由多个部分组成,而工厂模式的主要目的是为了创建对象而不暴露创建逻辑。
链式
调用来设置对象的各个属性,最后通过调用build()
方法来构建对象;而工厂模式通常使用一个工厂类来创建对象,通过调用工厂类的方法来获取对象的实例。
总的来说,建造者模式更适合创建复杂对象,而工厂模式更适合创建简单对象。选择使用哪种模式取决于对象的复杂度和创建过程的灵活性需求。