c 代码中如何优化 全局变量替换为单例模式,这将确保只有一个实例存在。代码示例
时间: 2024-03-05 19:48:13 浏览: 51
下面是一个示例,演示如何将全局变量替换为单例模式:
```
// 原始的全局变量定义
int global_variable = 0;
// 使用单例模式替代全局变量
class Singleton {
public:
static Singleton& getInstance() {
static Singleton instance;
return instance;
}
int getValue() const {
return value_;
}
void setValue(int value) {
value_ = value;
}
private:
Singleton() {}
int value_;
};
int main() {
// 使用全局变量
global_variable = 10;
printf("global_variable = %d\n", global_variable);
// 使用单例模式
Singleton& singleton = Singleton::getInstance();
singleton.setValue(10);
printf("singleton.getValue() = %d\n", singleton.getValue());
return 0;
}
```
在这个示例中,我们定义了一个名为 `Singleton` 的类,它包含一个私有的构造函数和一个私有的成员变量 `value_`,以及两个公有的方法 `getValue()` 和 `setValue()`。在 `getInstance()` 方法中,我们使用了静态局部变量来确保只有一个实例存在。在主函数中,我们使用全局变量和单例模式来存储和获取值,并输出它们的值。
使用单例模式可以确保只有一个实例存在,避免了全局变量可能导致的问题,并提高了代码的可读性和可维护性。
阅读全文