cpp-interview/DesignPattern/SingletonPattern
2018-07-22 14:50:54 +08:00
..
README.md 添加设计模式及例子,包括:单例、抽象工厂、适配器、桥接、观察者模式 2018-07-22 14:50:54 +08:00
Singleton.cpp 添加设计模式及例子,包括:单例、抽象工厂、适配器、桥接、观察者模式 2018-07-22 14:50:54 +08:00
Singleton.h 添加设计模式及例子,包括:单例、抽象工厂、适配器、桥接、观察者模式 2018-07-22 14:50:54 +08:00
SingletonMain.h 添加设计模式及例子,包括:单例、抽象工厂、适配器、桥接、观察者模式 2018-07-22 14:50:54 +08:00

单例模式

// 懒汉式单例模式
class Singleton
{
private:
	Singleton() { }
	static Singleton * pInstance;
public:
	static Singleton * GetInstance()
	{
		if (pInstance == nullptr)
			pInstance = new Singleton();
		return pInstance;
	}
};

// 线程安全的单例模式
class Singleton
{
private:
	Singleton() { }
	~Singleton() { }
	Singleton(const Singleton &);
	Singleton & operator = (const Singleton &);
public:
	static Singleton & GetInstance()
	{
		static Singleton instance;
		return instance;
	}
};