设计模式-观察者模式

背景

气象站需要将每天测量到的温度、湿度、气压等数据公布出去,

需要设计开放的API,以便第三方获取气象站的数据,

如果数据有更新,能及时地通知第三方

传统思路:

创建WeatherData类,有温度、湿度、气压属性,声明Get方法,便于第三方获取

不利于维护,更新属性的效率低。

基本介绍

对象之间多对一的设计方案,Subject是1,Observer是多都依赖Subject。

两个角色

①Subject:发出消息的类,具体操作的类

②Observer:用户,接收消息的类。

Subject中的三个基本方法:

registerObserver:注册用户

removeObserver:移除用户

notifyObserver:通知所有注册的用户

具体实现

气象局(WeatherData)实现Subject接口

第三方网站实现Observer接口

在Subject中声明上述的三个基本方法。在通知方法中,将温度、湿度、气压传给Observer

相关推荐
咖啡八杯20 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式
槑有老呆1 天前
从 Prompt Engineering 到 Harness Engineering:AI 编程的下一次跃迁
设计模式
HjhIron1 天前
从Prompt到Context:大模型应用开发的范式转移
设计模式·aigc·ai编程
咖啡八杯3 天前
GoF设计模式——中介者模式
java·后端·spring·设计模式
胡萝卜术3 天前
从“分数打架”到“排名投票”:为什么你的ChatBI必须用RRF?
算法·设计模式·面试
亦暖筑序4 天前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
青禾网络6 天前
Web 前端如何接入 AI 音效生成:从零到可用的完整方案
人工智能·设计模式
ZJPRENO7 天前
吃透软件开发六大设计原则,告别烂代码
设计模式
咖啡八杯7 天前
GoF设计模式——命令模式
java·设计模式·架构
花椒技术8 天前
HJPusher / HJPlayer SDK 实践:我们为什么把直播推播链路拆成一套可复用能力
设计模式·harmonyos·直播