1.大家都知道在古代同一个国家只有一个皇帝,而大臣却可以有多位。请用单例模式模拟大臣向皇帝进言的过程。
时间: 2024-04-06 15:32:25 浏览: 17
好的,我理解你的问题了。下面是我的回答:
单例模式是一种设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点。在这个场景中,我们可以使用单例模式来确保只有一个皇帝的存在。
首先,我们需要创建一个皇帝类 Emperor,它作为单例类,只能有一个实例。然后我们再创建一个大臣类 Minister,它可以向皇帝进言。
以下是代码示例:
```python
class Emperor:
__instance = None # 用于存储皇帝实例的类变量
def __new__(cls, *args, **kwargs):
if not cls.__instance:
cls.__instance = super().__new__(cls, *args, **kwargs)
return cls.__instance
def __init__(self, name):
self.name = name
class Minister:
def __init__(self, name):
self.name = name
def petition(self):
emperor = Emperor("唐太宗")
print(f"{self.name} 向皇帝 {emperor.name} 进言。")
```
以上是皇帝和大臣的代码实现。我们可以通过以下方式测试代码:
```python
minister1 = Minister("张某")
minister2 = Minister("李某")
minister1.petition()
minister2.petition()
```
运行结果如下:
```
张某 向皇帝 唐太宗 进言。
李某 向皇帝 唐太宗 进言。
```
从结果中可以看到,不论是哪位大臣,向皇帝进言的对象始终是同一个唐太宗。这就是单例模式的作用。