//以下是一个用 C++ 实现的单例模式示例代码:
#include <iostream>
class Singleton {
private:
static Singleton* instance;
Singleton() {}
public:
static Singleton* getInstance() {
if (!instance) {
instance = new Singleton();
}
return instance;
}
void doSomething() {
std::cout << "Singleton do something" << std::endl;
}
};
Singleton* Singleton::instance = nullptr; // 静态变量初始化
int main() {
Singleton* singleton1 = Singleton::getInstance();
Singleton* singleton2 = Singleton::getInstance();
std::cout << "singleton1 address: " << singleton1 << std::endl;
std::cout << "singleton2 address: " << singleton2 << std::endl;
singleton1->doSomething();
return 0;
}
//
//```
//在上面的示例中,我们通过设计 Singleton 类,实现了一个懒汉式单例模式。
// 在 `getInstance()` 方法中,我们使用了静态变量 `instance` 来保存唯一的类实例,
// 并在第一次使用该方法时创建了唯一的实例。
//
//在 `main` 函数中,我们创建了两个指针变量 `singleton1` 和 `singleton2`,
//并分别通过 Singleton 类的静态方法 `getInstance()` 获取实例。
//由于我们设计的是单例模式,因此这两个指针变量实际上指向的是同一个对象。
//我们通过打印指针变量地址的方式来证明这一点,并通过调用 `doSomething()` 方法来验证单例模式的正确性。
C++设计模式单件模式(单线程)Singleton pattern
于 2023-06-09 09:22:23 首次发布