1. 類圖
2. 示例代碼
//單實例模式
//注意static變量的初始化位置
#include <iostream>
using namespace std;
class Singleton
{
private:
static Singleton* sington; //唯一的實例
public:
Singleton(){}
//返回單個實例
static Singleton* getSington()
{
if(sington==NULL)
{
sington=new Singleton();//若實例不存在則創建一個
cout<<"創建一個新的實例!"<<endl;
}
else
{
cout<<"實例已經存在!"<<endl;
}
return sington;
}
};
Singleton* Singleton::sington=NULL;
int main()
{
Singleton* sington1=Singleton::getSington();
Singleton* sington2=Singleton::getSington();
return 0;
}