当前位置: 首页 > news >正文

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

观察者模式是一种行为设计模式,用于定义对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都会得到通知并自动更新。
from abc import ABC, abstractmethod
from typing import Listclass Observable:def __init__(self):self._observers: List[Observer] = []def add_observer(self, observer):self._observers.append(observer)def remove_observer(self, observer):self._observers.remove(observer)def notify_observers(self, message):for observer in self._observers:observer.update(message)class Observer(ABC):@abstractmethoddef update(self, message):passclass ConcreteObservable(Observable):def update_state(self, new_state):self.notify_observers(new_state)class ConcreteObserver(Observer):def __init__(self, name):self.name = namedef update(self, message):print(f"{self.name} received message: {message}")if __name__ == "__main__":observable = ConcreteObservable()observer1 = ConcreteObserver("Observer 1")observer2 = ConcreteObserver("Observer 2")observable.add_observer(observer1)observable.add_observer(observer2)observable.update_state("New State")

http://www.lryc.cn/news/348116.html

相关文章:

  • 【论文笔记】KAN: Kolmogorov-Arnold Networks 全新神经网络架构KAN,MLP的潜在替代者
  • 【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率
  • React Native 之 开发环境搭建(一)
  • DS高阶:B树系列
  • 第五百零三回
  • [动态规划] 完美覆盖
  • redis深入理解之实战
  • python设计模式---工厂模式
  • 探索Vue 3.0中的v-html指令
  • anaconda 环境配置
  • DS:顺序表、单链表的相关OJ题训练(2)
  • 上传到 PyPI
  • 盛最多水的容器(双指针)
  • 【深度学习】实验3 特征处理
  • MoneyPrinter国内版改造
  • C++ 派生类的引入与特性
  • Poe是什么?怎样订阅Poe?
  • 基于FPGA的视频矩阵切换方案
  • .NET周刊【5月第1期 2024-05-05】
  • springcloud -nacos实战
  • 第十五章 数据管理成熟度评估练习
  • tcpdump速查表
  • 单元测试与集成测试:软件质量的双重保障
  • 孙宇晨对话大公网:香港Web3政策友好环境示范意义重大
  • Python运维之多线程!!
  • milvus插入数据时,明明不超长,但总是报长度错误?
  • 怎么把图片大小缩小到1M?教你几招图片你压缩
  • python数据分析常见命令
  • 等保测评技术方案(五)
  • Redis缓存的基本概念和使用