当前位置: 首页> 房产> 建筑 > 编程-设计模式 4:建造者模式

编程-设计模式 4:建造者模式

时间:2025/7/12 3:16:51来源:https://blog.csdn.net/qq_45831414/article/details/141051851 浏览次数:0次

设计模式 4:建造者模式

定义与目的
  • 定义:建造者模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示
  • 目的:该模式主要用于创建复杂对象时,这些对象的创建过程可能涉及多个步骤,并且可能需要不同的配置选项。建造者模式将构建过程表示分离,使得可以构建出不同配置的同一类型对象。
实现示例

假设我们要创建一个计算机对象,这个对象有很多配置选项,比如处理器、内存、硬盘等。我们可以使用建造者模式来创建不同配置的计算机实例。

// 定义产品类 - 计算机
public class Computer {// 计算机的处理器型号private String processor;// 计算机的内存大小(单位:GB)private int ram;// 计算机的硬盘大小(单位:GB)private int hardDrive;// 私有构造函数,仅允许通过 Builder 创建 Computer 实例// 参数 builder 用于从 Builder 类中获取处理器、内存和硬盘的信息private Computer(Builder builder) {this.processor = builder.processor;this.ram = builder.ram;this.hardDrive = builder.hardDrive;}// Builder 类,用于构建 Computer 实例public static class Builder {// 计算机的处理器型号private String processor;// 计算机的内存大小(单位:GB)private int ram;// 计算机的硬盘大小(单位:GB)private int hardDrive;// 设置处理器型号// 参数 processor 为处理器型号// 返回当前 Builder 实例,以便可以继续链式调用其他方法public Builder processor(String processor) {this.processor = processor;return this;}// 设置内存大小// 参数 ram 为内存大小(单位:GB)// 返回当前 Builder 实例,以便可以继续链式调用其他方法public Builder ram(int ram) {this.ram = ram;return this;}// 设置硬盘大小// 参数 hardDrive 为硬盘大小(单位:GB)// 返回当前 Builder 实例,以便可以继续链式调用其他方法public Builder hardDrive(int hardDrive) {this.hardDrive = hardDrive;return this;}// 构建 Computer 实例// 返回使用当前 Builder 实例创建的 Computer 实例public Computer build() {return new Computer(this);}}// Getter 方法,用于获取处理器型号public String getProcessor() {return processor;}// Getter 方法,用于获取内存大小public int getRam() {return ram;}// Getter 方法,用于获取硬盘大小public int getHardDrive() {return hardDrive;}// 重写 toString 方法,用于格式化输出 Computer 实例的信息@Overridepublic String toString() {return "Computer{" +"processor='" + processor + '\'' +", ram=" + ram +", hardDrive=" + hardDrive +'}';}
}// 客户端代码
public class Client {public static void main(String[] args) {// 创建一台配置较高的计算机Computer computerHighEnd = new Computer.Builder().processor("i9")      // 设置处理器型号为 i9.ram(32)             // 设置内存大小为 32 GB.hardDrive(1024)     // 设置硬盘大小为 1024 GB.build();            // 构建 Computer 实例// 创建一台配置较低的计算机Computer computerLowEnd = new Computer.Builder().processor("i3")     // 设置处理器型号为 i3.ram(4)             // 设置内存大小为 4 GB.hardDrive(128)     // 设置硬盘大小为 128 GB.build();           // 构建 Computer 实例// 输出高配置计算机的信息System.out.println(computerHighEnd);  // 输出: Computer{processor='i9', ram=32, hardDrive=1024}// 输出低配置计算机的信息System.out.println(computerLowEnd);   // 输出: Computer{processor='i3', ram=4, hardDrive=128}}
}
使用场景
  • 当你需要创建一个复杂对象,且该对象的构建过程需要分步骤进行时。
  • 当构建对象的不同配置需要不同的步骤时。
  • 当构建对象的步骤可能会发生变化时。

建造者模式通过将构建过程与表示分离,使得可以在不同的情况下使用相同的构建步骤来创建不同的对象配置。这对于创建复杂对象时非常有用,特别是在对象的构建过程需要多个步骤的情况下。

小结

建造者模式适用于创建具有多个可选部分的复杂对象。它提供了一种方式来逐步构建这些对象,同时保持代码的简洁性和可扩展性。

关键字:编程-设计模式 4:建造者模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: