1.意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。2.动机对一些类来说,只有一个实例是很重要的。让类自身负责保存它唯一的实例,这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。3.适用性当类只能有一个实例而且客户可以 ...
1.意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.动机
对一些类来说,只有一个实例是很重要的。让类自身负责保存它唯一的实例,这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。
3.适用性
- 当类只能有一个实例而且客户可以从一个周所周知的访问点访问它时。
- 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
4.结构
5.代码实例
#include <iostream>#include <Windows.h>//静态成员实例的懒汉模式class Singleton{public: static CRITICAL_SECTION gSection; static Singleton * GetInstance() { InitializeCriticalSection(&gSection); EnterCriticalSection(&gSection); if(NULL == m_pSingleton) { m_pSingleton = new Singleton(); } return m_pSingleton; LeaveCriticalSection(&gSection); } void Print() { std::cout<<"Singleton is Created"<<std::endl; }private: static Singleton* m_pSingleton; Singleton() { }};CRITICAL_SECTION Singleton::gSection;Singleton* Singleton::m_pSingleton = NULL;
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:singleton(单件)
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。