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

观察者模式 (Observer Pattern)

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

一、基础

1. 意图

核心目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

2. 使用场景

典型应用

  • 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面
  • 当一个对象的改变需要同时改变其他对象,而不知道具体有多少对象需要改变
  • 当一个对象必须通知其他对象,而又不希望与这些对象紧耦合

具体案例

  • 股票价格变动通知投资者
  • 气象站数据变化更新多个显示板
  • 电商系统中的库存变化通知
  • 社交媒体中的消息推送

3. 模式结构

  • 主题(Subject):也被称为被观察对象或可观察对象,它维护了一个观察者列表,提供了添加、删除观察者以及通知观察者的方法。
  • 观察者(Observe

相关文章:

  • 【Android】app调用wallpaperManager.setBitmap的隐藏权限
  • Redux和MobX有什么区别
  • 3、LangChain基础:LangChain Tools Agent
  • 数据访问对象(DAO, Data Access Object)详解
  • Eigen核心矩阵/向量类 (Matrix, Vector, Array)
  • 全星研发项目管理APQP软件系统:助力企业迈向高效、透明的数字化项目管理新时代
  • 系统架构设计中的DSSA方法:理论、实践与行业深度应用
  • 【数论分块】数论分块算法模板及真题
  • 【Linux C/C++开发】使用hash算法进行性能优化
  • 基于pandoc的MarkDown格式与word相互转换小工具开发(pyqt5)
  • ChatGPT、deepseek、豆包、Kimi、通义千问、腾讯元宝、文心一言、智谱清言代码能力对比
  • WPF 调用 OpenCV 库
  • Make + OpenOCD 完成STM32构建+烧录
  • stm32进入睡眠模式的几个注意点
  • Debian12.8如何部署Ragflow
  • CS001-50-depth
  • 关于TCP三次握手和四次挥手的疑点
  • Ubuntu下安装vsode+qt搭建开发框架(二)
  • 罗技Flow跨电脑控制
  • 买币永续合约成全球交易热点,XBIT去中心化交易所平台显著提升市场流动性
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意
  • 美乌总统梵蒂冈会谈,外交部:望有关各方继续通过对话谈判解决危机
  • 中公教育:去年全面扭亏,经营性现金流增长169.6%
  • 靳燕出任中央戏剧学院党委副书记,原任中戏院长助理
  • 习近平在中共中央政治局第二十次集体学习时强调,坚持自立自强,突出应用导向,推动人工智能健康有序发展
  • 永辉超市一季度净利降近八成,未来12个月至18个月是改革成果集中释放期