Java创建型设计模式之建造者模式详解
作者:蜀山剑客李沐白 时间:2023-10-09 17:25:13
建造者模式是Java中一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程分解为多个简单对象的构建过程,并且使这些构建过程按照一定的顺序进行组装,最终实现对复杂对象的创建。本文将详细介绍Java中的建造者模式,包括它的定义、结构、实现方法以及应用场景等方面。
前言
当我们需要创建一个具有多个属性或组件的对象时,通常需要使用大量的构造函数和setter方法。随着属性或组件的增加,这种方式很容易变得混乱和难以维护。此时,建造者模式就可以很好地解决这个问题。
建造者模式将对象的构建过程分解为多个步骤,由调用端根据需要选择所需的步骤,并按照一定的顺序进行组装,最终实现对复杂对象的创建。通过使用建造者模式,可以将对象的构建过程和具体的构建实现分离开来,从而提高代码的可维护性和可读性。
定义
建造者模式是一种创建型模式,其定义如下:
将一个复杂对象的构建过程与其表示相分离,使得同样的构建过程可以创建不同的表示。
换句话说,建造者模式将对象的构建过程分解为多个简单对象的构建过程,并按照一定的顺序进行组装,从而实现对复杂对象的创建。通过使用建造者模式,可以使对象的构建过程和具体的构建实现相互独立,从而提高代码的可维护性和可读性。
结构
建造者模式包含以下几个角色:
1.产品类(Product)
产品类是一个具有多个属性或组件的复杂对象,它由多个简单对象组成。
public class Product {
private String part1;
private String part2;
private String part3;
// 省略 getter 和 setter 方法
}
2.抽象建造者类(Builder)
建造者类是一个抽象类或接口,它定义了创建产品对象的各个部分的抽象方法。在实际应用中,通常需要定义多个不同的建造者类来创建不同类型的产品对象。
public interface Builder {
void buildPart1();
void buildPart2();
void buildPart3();
Product getResult();
}
3.具体建造者类(ConcreteBuilder)
具体建造者类是抽象建造者类的子类,它实现了抽象建造者类中定义的所有抽象方法,并且根据具体需求组装产品对象的各个部分。
public class ConcreteBuilder implements Builder {
private Product product = new Product();
@Override
public void buildPart1() {
product.setPart1("part1");
}
@Override
public void buildPart2() {
product.setPart2("part2");
}
@Override
public void buildPart3() {
product.setPart3("part3");
}
@Override
public Product getResult() {
return product;
}
}
4.指导者类(Director)
指导者类负责创建具体建造者类的实例,并调用具体建造者类中的方法来组装产品对象的各个部分。在实际应用中,通常只需要一个指导者类即可。
public class Director {
public void construct(Builder builder) {
builder.buildPart1();
builder.buildPart2();
builder.buildPart3();
}
}
来源:https://juejin.cn/post/7231418548681506853