创建型模式¶
创建型模式关注**对象的创建过程**——当直接 new 一个对象会带来耦合、复杂度或资源浪费时,这类模式提供了更灵活的对象创建方式。
GoF 定义了 5 种创建型模式,加上常见的简单工厂(非 GoF),共 6 种,每种模式都有独立的详细笔记:
| 模式 | 一句话总结 | 核心手段 |
|---|---|---|
| 单例(Singleton) | 全局只有一个实例 | 私有构造函数 + 静态方法 |
| 简单工厂(Simple Factory)* | 工厂类集中管理创建逻辑 | 静态工厂方法 + switch |
| 工厂方法(Factory Method) | 子类决定创建哪个具体类 | 继承 + 重写工厂方法 |
| 抽象工厂(Abstract Factory) | 创建一族相关对象 | 接口 + 多个工厂方法 |
| 建造者(Builder) | 分步骤组装复杂对象 | 链式调用 + build() |
| 原型(Prototype) | 克隆现有对象 | clone() 深拷贝 |
*简单工厂不是 GoF 23 种模式之一,但作为工厂方法的入门前置,通常一起学习。
模式选型参考¶
graph TD
A[需要创建对象] --> B{对象是否应该\n全局唯一?}
B -- 是 --> C[单例模式]
B -- 否 --> D{创建的是\n一族配套对象?}
D -- 是 --> E[抽象工厂模式]
D -- 否 --> F{子类/调用方\n决定创建哪种?}
F -- 是 --> G[工厂方法模式]
F -- 否 --> H{需要集中管理\n创建逻辑?}
H -- 是 --> I[简单工厂模式]
H -- 否 --> J{对象参数多且\n部分可选?}
J -- 是 --> K[建造者模式]
J -- 否 --> L{已有相似对象\n克隆比初始化快?}
L -- 是 --> M[原型模式]
L -- 否 --> N[直接 new]