單件模式(Singleton Pattern)之C++實現

單件模式確保一個類只有一個實例,並提供一個全局訪問點。

#include <iostream>
#include <string>
using namespace std;
class Singleton
{
public:
	static Singleton* GetInstance();
	void print();
	void write(string strTmp);
private:
	Singleton();
	static Singleton* instance;
	string str;
};
Singleton::Singleton()
{	
	str="Test";
}
Singleton* Singleton::GetInstance()
{
	
	if (instance==NULL)
		instance=new Singleton();
	return instance;
}
void Singleton::print()
{
	cout<<str<<endl;
}
void Singleton::write(string strTmp)
{
	str=strTmp;
}
Singleton * Singleton::instance = NULL;
void main()
{
	Singleton* p=Singleton::GetInstance();
	Singleton* p2=Singleton::GetInstance();
	p->print();
	p2->print();
	p->write("haha");
	p->print();
	p2->print();
}

以上實現的單件模式還是有缺陷的,不適合多線程環境。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章