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

玩转观察者模式

文章目录

  • 什么是观察者模式
  • 解决方案
  • 结构
  • 适用场景
  • 实现方式
  • 观察者模式优缺点
    • 优点:
    • 缺点:


什么是观察者模式

观察者模式通俗点解释就是你在观察别人,别人有什么变化,你就做出什么调整。观察者模式是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。

假如你有两种类型的对象: ​ 顾客和商店。 顾客对某个特定品牌的产品非常感兴趣 (例如最新型号的 iPhone 手机), 而该产品很快将会在商店里出售。

顾客可以每天来商店看看产品是否到货。 但如果商品尚未到货时, 绝大多数来到商店的顾客都会空手而归。
在这里插入图片描述
另一方面, 每次新产品到货时, 商店可以向所有顾客发送邮件 (可能会被视为垃圾邮件)。 这样, 部分顾客就无需反复前往商店了, 但也可能会惹恼对新产品没有兴趣的其他顾客。

我们似乎遇到了一个矛盾: 要么让顾客浪费时间检查产品是否到货, 要么让商店浪费资源去通知没有需求的顾客。

解决方案

拥有一些值得关注的状态的对象通常被称为目标, 由于它要将自身的状态改变通知给其他对象, 我们也将其称为发布者 (publishe

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

相关文章:

  • Baklib知识中台构建企业智能运营核心架构
  • Anaconda +Jupyter Notebook安装(2025最新版)
  • 正成为现代城市发展的必然趋势的智慧交通开源了
  • 手撕Transformer编码器:从Self-Attention到Positional Encoding的PyTorch逐行实现
  • Webpack和Vite插件的开发与使用
  • HTTP的状态码
  • Python函数-装饰器
  • 【数据可视化-17】基于pyecharts的印度犯罪数据可视化分析
  • HTTP请求报文头和相应报文头
  • 19.4.9 数据库方式操作Excel
  • BFS 走迷宫
  • 【Linux系统】—— 简易进度条的实现
  • Qt 中使用 SQLite 数据库的完整指南
  • 数智化时代的工单管理:从流程驱动到数据驱动-亿发
  • Large Language Model Distilling Medication Recommendation Model
  • floodfill算法系列一>被围绕的区域
  • Redis 01 02章——入门概述与安装配置
  • windows基于cpu安装pytorch运行faster-whisper-large-v3实现语音转文字
  • AI大模型(如GPT、BERT等)可以通过自然语言处理(NLP)和机器学习技术,显著提升测试效率
  • 【Prometheus】prometheus黑盒监控balckbox全面解析与应用实战
  • CSS实现单行、多行文本溢出显示省略号(…)
  • 服务器中部署大模型DeepSeek-R1 | 本地部署DeepSeek-R1大模型 | deepseek-r1部署详细教程
  • 元学习之孪生网络Siamese Network
  • 深入HBase——引入
  • Python创建FastApi项目模板
  • TCNE 网络安全
  • 车规MCU处理器选择Cortex-M7还是Cortex-R52?
  • 什么是计算机中的 “终端”?
  • LeetCode刷题---字符串---819
  • SSH IBM AIX服务器相关指标解读