(一)单例模式
一、前言
单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。
六大创建型模式包括:单例模式、原型模式、工厂方法模式、建造者模式、简单工厂模式、抽象工厂模式。
二、模式定义
确保一个类只有一个实例,并提供全局访问点。
📌 核心特点:
-
私有化构造函数(防止外部
new
实例) -
静态方法获取唯一实例
-
线程安全(多线程环境下需特殊处理)
单例模式有多种实现方式:懒汉式(Lazy Initialization)、加锁(C++11后推荐)、双重检查锁定(Double-Checked Locking)、C++11最简写法(Meyer's Singleton)
目前最推荐的应用是Meyer's Singleton。其UML类图表示如下:
-
-
表示私有成员 -
+
表示公有方法 -
static
表示静态成员