python设计模式--观察者模式

观察者模式是一种行为设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生变化时,会通知所有观察者对象,使它们能够自动更新。

在 Python 中,观察者模式通常由两个主要角色组成:

  1. **主题(Subject)**:主题对象维护一组观察者对象,并提供方法来注册、删除和通知观察者对象。

  2. **观察者(Observer)**:观察者对象监听主题对象的状态变化,并在主题对象状态发生变化时接收通知并做出相应的更新。

Python 中实现观察者模式:

```python

class Subject:

def init(self):

self._observers = []

def register_observer(self, observer):

self._observers.append(observer)

def unregister_observer(self, observer):

self._observers.remove(observer)

def notify_observers(self, message):

for observer in self._observers:

observer.update(message)

class Observer:

def update(self, message):

print(f"Received message: {message}")

创建主题对象

subject = Subject()

创建观察者对象

observer1 = Observer()

observer2 = Observer()

注册观察者

subject.register_observer(observer1)

subject.register_observer(observer2)

主题对象状态变化,通知观察者

subject.notify_observers("Hello, observers!")

```

示例中,Subject 类代表主题对象,Observer 类代表观察者对象。当主题对象状态发生变化时,调用 notify_observers() 方法通知所有注册的观察者对象,观察者对象接收到通知后调用 update() 方法进行更新操作。

观察者模式可以帮助实现对象之间的松耦合,使主题对象和观察者对象之间的关系更加灵活。通过这种方式,可以实现事件驱动的编程模式,提高代码的可维护性和扩展

相关推荐
曦月逸霜5 小时前
啥是RAG 它能干什么?
人工智能·python·机器学习
2301_769340675 小时前
如何在 Vuetify 中可靠捕获 Chip 关闭事件(包括键盘触发).txt
jvm·数据库·python
南 阳6 小时前
Python从入门到精通day66
开发语言·python
m0_596749097 小时前
JavaScript中手动实现一个new操作符的底层逻辑
jvm·数据库·python
DTAS尺寸公差分析软件7 小时前
DTAS3D v13.0 三维尺寸公差分析软件可申请试用
python·尺寸公差分析·三维公差分析·公差仿真软件·尺寸链计算
DTAS尺寸公差分析软件7 小时前
DTAS 3D公差分析软件最新版本介绍
python·3d·尺寸公差分析·尺寸链计算·尺寸工程·尺寸链校核软件·公差仿真分析
PieroPc7 小时前
CAMWATCH — 局域网摄像头监控系统 Fastapi + html
前端·python·html·fastapi·监控
feasibility.7 小时前
反爬十层妖塔:现代爬虫攻防的立体战争
爬虫·python·科技·scrapy·rust·go·硬件
十八旬7 小时前
快速安装ClaudeCode完整指南
开发语言·windows·python·claude
dFObBIMmai8 小时前
如何在 CSS 中实现元素的绝对定位,使其不受窗口尺寸变化影响
jvm·数据库·python