C++单例对象是什么?(单例模式)

单例对象(单例模式)

在面向对象编程中,单例模式是一种创建型设计模式,用于确保类只有一个实例,并提供一个全局访问点以访问该实例。在单例模式中,类的构造函数被声明为私有,以防止通过常规的构造函数创建类的多个实例。取而代之的是,该类提供了一个静态方法来返回单个实例,如果该实例不存在,则该方法将创建一个新实例。每次调用该方法时,都返回同一对象的引用。

单例对象是由单例模式创建的唯一实例,通常具有全局可访问的公共访问点。单例对象在整个程序的生命周期内只被创建一次,即只有一个实例对象。它通常用于管理全局配置、数据库连接、日志记录等全局资源,因为这些资源在整个程序中应该是唯一的,重复创建可能会导致错误和资源浪费。

单例模式的缺点

单例模式会增加代码的复杂性和耦合度。
单例模式很难进行单元测试,因为它的实例是全局唯一的,很难模拟出多个实例的情况。
单例模式可能会隐藏依赖关系,使得代码更加难以维护和理解。

示例

只有在初次调用此接口时,才会创建一个新实例;之后调用,返回已有的实例

/**
 * @brief 获取 CW_sdk_clientDemo 单例对象的引用
 *
 * @return CW_sdk_clientDemo& 单例对象的引用
 */
CW_sdk_clientDemo &getCwClientDemoInstance()
{
    
    
    static CW_sdk_clientDemo &demo = []() -> CW_sdk_clientDemo &
    {
    
    
        KY_AI_LOG("getCwClientDemoInstance: CW_sdk_clientDemo demo once and only initialization");
        std::cout << "getCwClientDemoInstance: CW_sdk_clientDemo demo once and only initialization" << std::endl;
        static CW_sdk_clientDemo instance;
        return instance;
    }();
    return demo;
}

猜你喜欢

转载自blog.csdn.net/Dontla/article/details/130002883