生成器模式(Builder Pattern)

以下是**生成器模式(Builder Pattern)**的文本版 UML 类图,使用符号表示:

┌───────────────────┐          ┌───────────────────┐
│      Director      │          │      Builder       │
├───────────────────┤          ├───────────────────┤
│ +construct(Builder)│<>───────>│ +buildPartA()      │
└───────────────────┘          │ +buildPartB()      │
                               │ +getResult():Product│
                               └───────────────────┘
                                       △
                                       │ 实现
               ┌───────────────────────────────────┐
               │                                   │
       ┌───────────────────┐             ┌───────────────────┐
       │  ConcreteBuilder1 │             │  ConcreteBuilder2 │
       ├───────────────────┤             ├───────────────────┤
       │ +buildPartA()      │             │ +buildPartA()      │
       │ +buildPartB()      │             │ +buildPartB()      │
       │ +getResult():Product│            │ +getResult():Product│
       └───────────────────┘             └───────────────────┘
                   │                                   │
                   ▼                                   ▼
       ┌───────────────────┐             ┌───────────────────┐
       │     Product       │             │     Product       │
       ├───────────────────┤             ├───────────────────┤
       │ -attribute1       │             │ -attribute1       │
       │ -attribute2       │             │ -attribute2       │
       └───────────────────┘             └───────────────────┘

符号说明

  • ┌─┐:类框。
  • <>───>:依赖关系(Director 依赖 Builder 接口)。
  • :实现关系(ConcreteBuilder 实现 Builder 接口)。
  • +:公有方法(如 construct())。
  • -:私有属性(如 attribute1)。
  • :垂直分隔线。

核心角色

  1. Product:最终构造的复杂对象(如 Computer)。
  2. Builder:定义构造步骤的接口(如 buildCPU()buildRAM())。
  3. ConcreteBuilder:实现构造逻辑的具体类(如 GamingComputerBuilder)。
  4. Director:控制构造流程的类(如 Engineer)。

关系解读

  • Director 调用 Builder 的方法,按步骤构造 Product。
  • ConcreteBuilder 实现 Builder 接口,并负责最终 Product 的生成。
  • 不同 ConcreteBuilder 可构造不同形式的 Product(例如:高配版 vs 低配版)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qzer_407

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值