一文读懂:C++中单例模式的实现

单例模式的实现

单例模式是一个比较模板化的设计模式,通常在实际应用中可以直接复用写好的框架。

如下是一种典型的模式:

复制代码
class Singleton {
private:
    static Singleton* s_instancePtr;

public:
    static Singleton* instance() {
        // TODO
        return s_instancePtr;
    }

private:
    Singleton() = default;
    ~Singleton() = default;

private:
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;
};

Singleton* Singleton::s_instancePtr = nullptr;

这里为了防止调用者突破单例,需要两层防护:

  1. 将需要的构造函数设为 private
  2. 将拷贝构造函数和拷贝赋值显示删除

对于这个全局的访问点,我们需要设置一个 pubilc 的 static 函数,下文也是着重对该函数进行讲解。

单例模式用在哪里?

配置管理‌:比如系统配置信息,一份就够了,保证所有模块读到的配置一样。

‌资源池‌:像数据库连接池、线程池,多了浪费资源,限制数量更高效。

‌日志记录‌:所有日志写到同一个地方,避免信息冗余混乱,方便统一管理。‌‌‌

相关推荐
前端工作日常6 小时前
我学习到的Java中domain和dto区别
java·后端
码农学院7 小时前
基于Spring Boot的跨境电商多语言订单管理系统架构设计
java·大数据·spring boot
技术小结-李爽8 小时前
【工具】pom文件的<packaging>
java·maven
hold?fish:palm8 小时前
kv存储主从复制的设计与实现
c++·redis·后端
l156469488 小时前
突围!图文混合知识库难以解析,Kimi-K3 原生视觉架构深耕知识工作,DMXAPI 统一接口,缩短项目开发周期
java·大数据·开发语言
啦啦啦啦啦zzzz8 小时前
算法:贪心算法
c++·算法·leetcode·贪心算法
charlie1145141918 小时前
现代C++工程实践 WeakPtr 实战(三):WeakPtrFactory 与「最后成员」惯用法
开发语言·c++·开源项目·现代c++
布吉岛的石头9 小时前
Java 程序员第 45 阶段11:网关统一路由大模型接口,配合 Nacos 配置治理,灰度路由:基于Nacos元数据实现大模型服务灰度发布与权重路由
java·服务发现
我命由我123459 小时前
Android 开发问题:Cannot resolve method ‘repeat‘ in ‘String‘
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
baozhengw10 小时前
信创改造-SpringBootJar包改为WAR包部署Tomcat
java·tomcat