单例模式的C++实现与测试

Why 为什么需要单例模式?

高效的资源管理

What 单例模式实现了什么功能?

  • 程序的生命期内只有一份实例
    • 拷贝禁止
  • 提供全局访问

How 如何设计单例模式?

单例模式的一个实现及测试

#include <iostream>

class Singleton{
private:
    Singleton(){}
    static Singleton *m_pInstance;
public:
    static Singleton *
    GetInstance(){
        if(m_pInstance == NULL){
            m_pInstance = new Singleton();
        }
        return m_pInstance;
    }
    
};


using std::cout;
using std::endl;

Singleton *Singleton::m_pInstance = NULL;

int
main(){
    Singleton *p1 = Singleton::GetInstance();
    Singleton *p2 = Singleton::GetInstance();
    if(p1 == p2){
        cout << "p1与p2是同一个实例 << endl;
    }
    else{
        cout << "p1与p2不是同一个实例" << endl;
    }
    return 0;
}

How 单例模式如何运用到项目中?

muduo库可用于多线程环境下的日志库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容