C++ 设计模式(4. 建造者模式)

  • 建造者模式(也被成为生成器模式),是一种创建型设计模式,软件开发过程中有的时候需要创建很复杂的对象,而建造者模式的主要思想是将对象的构建过程分为多个步骤,并为每个步骤定义一个抽象的接口。具体的构建过程由实现了这些接口的具体建造者类来完成。同时有一个指导者类负责协调建造者的工作,按照一定的顺序或逻辑来执行构建步骤,最终生成产品。

  • 基本结构
    建造者模式有下面几个关键角色:

    • 产品Product:被构建的复杂对象, 包含多个组成部分。
    • 抽象建造者Builder: 定义构建产品各个部分的抽象接口和一个返回复杂产品的方法getResult
    • 具体建造者Concrete Builder:实现抽象建造者接口,构建产品的各个组成部分,并提供一个方法返回最终的产品。
    • 指导者Director:调用具体建造者的方法,按照一定的顺序或逻辑来构建产品。指导者类来控制构建产品的顺序和步骤。
  • 使用场景
    使用建造者模式有下面几处优点:

    • 使用建造者模式可以将一个复杂对象的构建与其表示分离,通过将构建复杂对象的过程抽象出来,可以使客户端代码与具体的构建过程解耦。
    • 同样的构建过程可以创建不同的表示,可以有多个具体的建造者(相互独立),可以更加灵活地创建不同组合的对象。
    • 对应的,建造者模式适用于复杂对象的创建,当对象构建过程相对复杂时可以考虑使用建造者模式,但是当产品的构建过程发生变化时,可能需要同时修改指导类和建造者类,这就使得重构变得相对困难。
    • 建造者模式在现有的工具和库中也有着广泛的应用,比如JUnit 中的测试构建器TestBuilder就采用了建造者模式,用于构建测试对象。
相关推荐
召木33 分钟前
C++小白实习日记——Day 2 TSCNS怎么读取当前时间
c++·职场和发展
St_Ludwig1 小时前
C语言 蓝桥杯某例题解决方案(查找完数)
c语言·c++·后端·算法·游戏·蓝桥杯
Jack黄从零学c++1 小时前
opencv(c++)---自带的卷积运算filter2D以及应用
c++·人工智能·opencv
sweetheart7-71 小时前
LeetCode20. 有效的括号(2024冬季每日一题 11)
c++·算法·力扣··括号匹配
gma9992 小时前
brpc 与 Etcd 二次封装
数据库·c++·rpc·etcd
ö Constancy2 小时前
设计LRU缓存
c++·算法·缓存
SchneeDuan2 小时前
建造者模式
运维·服务器·建造者模式
小白不太白9502 小时前
设计模式之建造者模式
java·设计模式·建造者模式
p-knowledge2 小时前
建造者模式(Builder Pattern)
java·开发语言·建造者模式
C++忠实粉丝3 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp