众所周知,根据创建时机单例模式分为懒汉式和饿汉式,根据线程是否安全分为线程安全和线程不安全。
最近看Cherno的一个讲解视频,对于单例模式有了一个新的认识。Cherno认为,给单例提供一个随时随地的访问接口不利于游戏引擎这种底层框架的设计,会打乱程序的树状架构。
阶段一
对于下面这个单例实现方式,根据静态对象的构造时机以及C++11后局部静态变量在第一次被访问时初始化是线程安全的特性,很容易得到这是饿汉式线程安全的一种实现。但这种方式不能直观地显式创建和销毁单例对象,尤其是当应用程序有多个单例,而且单例间存在依赖关系,需要特定的创建和销毁顺序。
2024/10/25大约 2 分钟
