单例模式是一种对象创建型模式,使用单例模式,可以保证一个类只生成一个唯一对象。也就是说,整个程序只能创建一个用单例设计模式设计的类。
单例模式实现步骤懒汉式:在类中创建对象,并返回静态指针给类外的对象使用
1:构造函数私有化
2:提供静态指针
3:提供静态方法,返回静态指针
饿汉式:在类外创建对象,赋给类中静态指针,作为全局变量使用
为什么要使用单例模式?1、需要生成唯一序列的环境。
2、需要频繁实例化,然后销毁对象。
3、创建对象时耗时过多或者耗资源过多,但又经常用到的对象。
4、方便资源相互通信的环境。
实际案例:
多线程中网络资源的初始化
回收站机制
任务管理器
应用程序日志管理
..................
#includeusing namespace std; class SingeleTon { public: static SingeleTon* m_singletop;// 2:提供静态指针 static SingeleTon* GetSingleTop()//3:提供静态方法,返回静态指针 { if (m_singletop == nullptr) m_singletop = new SingeleTon; return m_singletop; } void TestPrint() { cout << "测试函数。。。。。" << endl; } protected: SingeleTon(); //1:构造函数私有化 }; SingeleTon* SingeleTon::m_singletop = nullptr; //饿汉式时,在此处new出对象,作为全局变量使用 SingeleTon::SingeleTon() { cout << "构造对象。。。。。。。。。。。" << endl; m_singletop = nullptr; } int main() { SingeleTon* p1 = SingeleTon::GetSingleTop(); SingeleTon* p2 = SingeleTon::GetSingleTop(); cout << "p1:" < TestPrint(); p2->TestPrint(); return 0; }



