Python中如何使用观察者模式?
时间: 2024-04-25 17:20:08 浏览: 7
在Python中,可以使用观察者模式来实现对象之间的一对多依赖关系。观察者模式包含两个主要角色:主题(Subject)和观察者(Observer)。
下面是一个简单的示例,演示了如何在Python中使用观察者模式:
```python
# 定义主题类
class Subject:
def __init__(self):
self.observers = []
def attach(self, observer):
self.observers.append(observer)
def detach(self, observer):
self.observers.remove(observer)
def notify(self, message):
for observer in self.observers:
observer.update(message)
# 定义观察者类
class Observer:
def update(self, message):
print("Received message:", message)
# 创建主题对象和观察者对象
subject = Subject()
observer1 = Observer()
observer2 = Observer()
# 将观察者对象添加到主题对象的观察者列表中
subject.attach(observer1)
subject.attach(observer2)
# 主题对象发送通知给观察者
subject.notify("Hello, observers!")
```
运行以上代码,输出结果为:
```
Received message: Hello, observers!
Received message: Hello, observers!
```
在这个示例中,主题类(Subject)维护了一个观察者列表,并提供了attach、detach和notify方法。attach方法用于将观察者添加到列表中,detach方法用于从列表中移除观察者,notify方法用于通知所有观察者。
观察者类(Observer)定义了一个update方法,用于接收主题对象发送的通知。
通过创建主题对象和观察者对象,并将观察者对象添加到主题对象的观察者列表中,可以实现主题对象的状态变化时自动通知观察者。