设计模式学习 – 单例模式
饿汉单例模式
单例模式在整个程序运行过程中只创建一个实例。其思想是将构造私有化,防止任意创建实例,并禁止使用拷贝构造函数和赋值构造函数(包括移动拷贝与赋值)。而懒汉式单例模式不是线程安全的,因此本人偏爱饿汉式。使用饿汉式单例模式必须先创建实例再使用。
代码如下(示例):
#include <iostream>
using namespace std;
class Singleton {
public:
static Singleton* getInstance() { return instance; };
Singleton(Singleton const&) = delete;
Singleton(Singleton&&) = delete;
Singleton& operator=(Singleton const&) = delete;
Singleton& operator=(Singleton&&) = delete;
protected:
Singleton() noexcept = default;
~Singleton() = default;
static Singleton* instance;
};
Singleton* Singleton::instance = new Singleton();
int main() {
Singleton* singleton = Singleton::getInstance();
return 0;
}