建造者模式是一种创建型设计模式,它的目的是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式常用于构建具有复杂结构的对象,如需要多个部件组合而成的对象。
Java代码实现
首先,定义一个Product类,它包含了需要构建的对象的各个部分:
public class Product {
private String part1;
private String part2;
private String part3;
public void setPart1(String part1) {
this.part1 = part1;
}
public void setPart2(String part2) {
this.part2 = part2;
}
public void setPart3(String part3) {
this.part3 = part3;
}
// ... 其他方法
}
然后,定义一个Builder接口,它声明了用于构建对象的方法:
public interface Builder {
public void buildPart1();
public void buildPart2();
public void buildPart3();
public Product getResult();
}
接着,实现这个接口的具体建造者类,按照一定的顺序逐步构建出对象的各个部分,并最终返回一个完整的对象:
public class ConcreteBuilder implements Builder {
private Product product = new Product();
public void buildPart1() {
product.setPart1("Part1");
}
public void buildPart2() {
product.setPart2("Part2");
}
public void buildPart3() {
product.setPart3("Part3");
}
public Product getResult() {
return product;
}
}
最后,可以定义一个指挥者类,它负责协调各个建造者的工作,以确保对象的构建过程能够正确地进行:
public class Director {
public void construct(Builder builder) {
builder.buildPart1();
builder.buildPart2();
builder.buildPart3();
}
}
现在,可以使用建造者模式来构建对象了:
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director();
director.construct(builder);
Product product = builder.getResult();
}
}
这个例子中,通过使用建造者模式,可以更加灵活地创建对象。例如,如果需要创建一个不同的表示,只需要实现一个新的具体建造者类即可,而不需要修改已有的代码。
在开发过程中,可以通过lombok注解@Builder实现以上效果。