← 学习中心

设计模式:创建型(单例/工厂/建造者)

单例的线程安全写法、工厂解耦对象创建、建造者应对多参数构造,面试高频。

本节你将能

讲清三种创建型模式的意图、写法与面试追问点。

核心要点

  • 单例:饿汉(类加载即建,简单但可能浪费)、懒汉(DCL+volatile 防指令重排)、静态内部类(推荐)、枚举(防反射/反序列化)。
  • 工厂:简单工厂/工厂方法/抽象工厂,把「new 哪个类」的决策从调用方剥离。
  • 建造者 Builder:链式设置多个可选参数,避免 Telescoping Constructor 与setter 不一致。
  • 原型 Prototype:clone 复制对象,适合创建成本高、差异小的场景。

面试连招

常被追问:DCL 为什么需要 volatile?枚举单例为何最安全?Spring 用的是什么工厂?

常见坑

单例 DCL 漏写 volatile 导致拿到半初始化对象;把工厂写成巨大的 switch。

设计模式:创建型(单例/工厂/建造者) | 必学必会