创建型模式—单例模式

本文详细介绍了C++中的单例模式,包括其概念、作用以及两种常见的实现方式:懒汉式和饿汉式。懒汉式确保了对象在首次使用时才初始化,而饿汉式则在程序启动时立即初始化。文中还给出了懒汉式的C++代码实现,用于演示如何保证线程安全地获取单例实例。单例模式常用于需要全局唯一对象的场景,如配置管理。
摘要由CSDN通过智能技术生成

C++中的单例模式_bob62856的博客-CSDN博客_c++单例模式一、什么是单例模式单例模式(Singleton Pattern,也称为单件模式),使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。定义一个单例类,私有化它的构造函数,以防止外界创建单例类的对象;使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。二、懒汉版(Lazy Singleton)教学版,即懒汉版(Lazy Singleton):单例实例在第一次被使用时才进行初始化,这叫做延迟初始化。// versiohttps://blog.csdn.net/qq_20817327/article/details/108720839

参考

一、使用场景

在业务逻辑中唯一的对象建议使用单例模式,放置逻辑上的唯一对象被创建多次,比如一个进程中的配置管理对象,一个进程中使用一个管理对象,为了实现该对象不被多次创建,可以使用单例模式。

二、通用实现方法

懒汉式:对象在真正使用的地方再进行创建

CConfigManager* CConfigManager::instance()
{
    g_ConfigManagerMtx.lock();
    if (nullptr == m_pInstance)
    {
        m_pInstance = new CConfigManager();
        if (nullptr != m_pInstance)
        {
                g_ConfigManagerMtx.unlock();
                return m_pInstance;
        }
        else
        {
                CRRC_ERROR("nullptr == m_pInstance");
                g_ConfigManagerMtx.unlock();
                return nullptr;
        }
    }
    else
    {
         g_ConfigManagerMtx.unlock();
        return m_pInstance;
    }
}

恶汉式:对象在程序运行时立即初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值