有一个美丽的善良的姑娘,很多的追求者。 追求者队伍会不断的变换 追求者最喜欢问的话“你在干嘛” 善良的姑娘不断的回复。 困惑 姑娘:不断回复给很多人 追求者:不断询问 现在改用用关注的方式(观察者模式) 如果男孩们关注了女孩,女孩更新自己的状态的时候,男孩们也会第一时间了解
时间: 2024-02-26 07:58:20 浏览: 57
好的,那么我们可以将善良的姑娘作为被观察者(Subject),将追求者们作为观察者(Observer)。当善良的姑娘更新自己的状态时,通知所有关注她的追求者进行相应的处理。
以下是一个简单的示例代码:
```python
class Girl:
def __init__(self):
self.observers = []
self.status = ""
def attach(self, observer):
self.observers.append(observer)
def detach(self, observer):
self.observers.remove(observer)
def notify(self):
for observer in self.observers:
observer.update(self.status)
def update_status(self, status):
self.status = status
self.notify()
class Boy:
def __init__(self, name):
self.name = name
def update(self, status):
print(f"{self.name}收到了女孩的状态更新:{status}")
# 创建一个女孩对象
girl = Girl()
# 创建三个男孩对象
boy1 = Boy("小明")
boy2 = Boy("小李")
boy3 = Boy("小张")
# 男孩们关注女孩
girl.attach(boy1)
girl.attach(boy2)
girl.attach(boy3)
# 女孩更新状态,男孩们会收到通知
girl.update_status("我在看电影")
```
输出结果如下:
```
小明收到了女孩的状态更新:我在看电影
小李收到了女孩的状态更新:我在看电影
小张收到了女孩的状态更新:我在看电影
```
这样,我们就成功地使用观察者模式实现了女孩和追求者之间的通信。
阅读全文