单例模式模拟大臣向皇帝进言
时间: 2024-05-18 13:09:49 浏览: 14
单例模式是一种设计模式,它保证了一个类只有一个实例,并且提供了一个全局访问点。在单例模式中,一个类必须保证它的构造函数是私有的,这样才能确保只有这个类自身可以创建它的实例。
模拟大臣向皇帝进言的场景下,我们可以将大臣实现为单例模式,确保只有一个大臣向皇帝进言。
具体实现方法如下:
1. 定义一个大臣类 Minister,将其构造函数设为私有。
2. 在该类中定义一个静态成员变量 instance,用于保存唯一的大臣实例。
3. 定义一个静态成员函数 getInstance,用于获取唯一的大臣实例。在该函数中,判断 instance 是否为空,如果为空,则创建一个新的大臣实例并返回;如果不为空,则直接返回 instance。
4. 大臣类中可以定义一些成员变量和函数,用于模拟大臣向皇帝进言的场景。
以下是一段简单的代码示例:
```cpp
class Minister {
private:
static Minister* instance; // 静态成员变量,保存唯一的大臣实例
Minister() {} // 构造函数私有化
public:
static Minister* getInstance() {
if (instance == nullptr) { // 如果 instance 为空,则创建一个新的大臣实例
instance = new Minister();
}
return instance;
}
void speakToEmperor(std::string words) {
std::cout << "大臣向皇帝进言:" << words << std::endl;
}
};
Minister* Minister::instance = nullptr; // 初始化静态成员变量
int main() {
Minister* minister = Minister::getInstance(); // 获取唯一的大臣实例
minister->speakToEmperor("朕已知晓");
return 0;
}
```