跳转至

创建型模式

创建型模式关注**对象的创建过程**——当直接 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]