构造者模式

        构造者模式最核心的思想就是将创建复杂对象的过程与复杂对象本身进行拆分。通俗来讲,构造者模式是将复杂对象的创建过程分解成了多个简单步骤,在创建复杂对象的时候,只需要了解复杂对象的基本属性即可,而不需要关心复杂对象的内部构造过程。这样的话,使用方只需要关心这个复杂对象要什么数据,而不再关心内部细节。

 

构造者模式的四个核心组件。

Product 接口:复杂对象的接口,定义了要创建的目标对象的行为。

ProductImpl 类:Product 接口的实现,它真正要创建的复杂对象,其中实现了我们需要的复杂业务逻辑。

Builder 接口:定义了构造 Product 对象的每一步行为。

Build

在 Java 中,构造者模式(Builder Pattern)是一种创建型设计模式,用于将一个复杂对象的构建过程与其表示分离。这种模式允许使用相同的构建过程来创建不同的对象表示,适用于对象属性较多、构造参数复杂的情况。 ### 构造者模式的主要角色 1. **抽象建造者(Builder)**:定义构建产品的各个步骤的接口。 2. **具体建造者(Concrete Builder)**:实现 Builder 接口,提供具体的构建逻辑,并返回最终的产品对象。 3. **指导者(Director)**:负责调用建造者的各个步骤来构建产品。 4. **产品(Product)**:最终要创建的对象。 ### 使用方法和示例 以下是一个典型的 Java 示例,展示如何通过构造者模式构建一个 `Computer` 对象: #### 1. 定义产品类 ```java public class Computer { private String CPU; private String RAM; private String storage; private String GPU; // 展示产品信息 @Override public String toString() { return "Computer [CPU=" + CPU + ", RAM=" + RAM + ", Storage=" + storage + ", GPU=" + GPU + "]"; } // 内部静态建造者类 public static class Builder { private String CPU; private String RAM; private String storage; private String GPU; public Builder setCPU(String CPU) { this.CPU = CPU; return this; } public Builder setRAM(String RAM) { this.RAM = RAM; return this; } public Builder setStorage(String storage) { this.storage = storage; return this; } public Builder setGPU(String GPU) { this.GPU = GPU; return this; } public Computer build() { Computer computer = new Computer(); computer.CPU = this.CPU; computer.RAM = this.RAM; computer.storage = this.storage; computer.GPU = this.GPU; return computer; } } } ``` #### 2. 使用建造者创建对象 ```java public class Client { public static void main(String[] args) { Computer computer = new Computer.Builder() .setCPU("Intel i7") .setRAM("16GB") .setStorage("1TB SSD") .setGPU("NVIDIA RTX 3080") .build(); System.out.println(computer.toString()); } } ``` #### 输出结果: ``` Computer [CPU=Intel i7, RAM=16GB, Storage=1TB SSD, GPU=NVIDIA RTX 3080] ``` ### 应用场景 - 当对象的构造过程较为复杂,需要多个步骤完成时。 - 需要确保对象在构建过程中保持一致性,例如不同配置下的计算机、汽车等。 - 提供清晰的代码结构,避免冗长的构造函数或大量的 setter 方法。 ### 优势 - **解耦**:将对象的构建与表示分离,提高了代码的可读性和可维护性。 - **灵活性**:可以逐步构建对象,甚至动态决定某些步骤是否执行。 - **控制构建过程**:通过指导者类(Director),可以对构建流程进行统一管理。 该模式非常适合处理具有多个可选参数的对象创建问题,尤其是当这些参数之间可能存在依赖关系时[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值