深入解析建造者模式 :c++如何实现?

图片

1. 模式简介

建造者模式是一种创建型设计模式,用于分步骤构建一个复杂对象,允许通过同一构建过程生成不同的表示。这个模式将对象的构建过程与表示分离,使得相同的构建过程可以创建不同的对象

这种模式特别适合于构建包含多个组成部分的复杂对象,而不同的部分可能需要灵活配置或选择性地组合。与工厂模式不同的是,建造者模式关注的是对象构建的步骤,而不仅是选择具体产品类。

2. 适用场景
  • 构建复杂对象:如果对象有许多部分或组件,每个组件可能有多个选项,可以使用建造者模式分步骤构建对象。

  • 细粒度的控制:需要精确控制对象构建的步骤、顺序和细节,而不是简单地生成对象。

  • 对象的表示和创建过程独立:当需要让同样的构建过程创建不同表示的对象时。

例如,假设我们有一个“豪华电脑”的构建需求,有CPU、GPU、内存、硬盘、操作系统等组件,并希望能够灵活选择这些组件。使用建造者模式可以通过分步骤选择不同的配置,最终构建出符合特定需求的电脑。

3. 建造者模式的结构

建造者模式包括以下角色:

  • 产品 (Product):即要创建的复杂对象。

  • 抽象建造者 (Builder):定义创建产品各部分的接口。

  • 具体建造者 (ConcreteBuilder):实现 Builder 接口,完成产品的具体构造步骤。

  • 指挥者 (Director):指导建造者构建产品的流程,但不会涉及具体的构建细节。

4. C++ 实现示例

我们以创建一个电脑 (Computer) 对象为例,实现建造者模式。电脑由多个部分组成,比如 CPU、GPU、内存、硬盘、操作系统等。不同的电脑配置可能使用不同的这些组件。

代码实现
#include <iostream>#include <memory>#include <string>// Step 1: 产品类 - 定义要构建的复杂对象,即电脑class Computer {
  
  public:    void setCPU(cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值