23种设计模式-建造者模式

43 阅读1分钟

建造者模式是一种创建型设计模式,它的目的是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式常用于构建具有复杂结构的对象,如需要多个部件组合而成的对象。

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实现以上效果。