设计模式-观察者模式

背景

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

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

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

传统思路:

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

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

基本介绍

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

两个角色

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

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

Subject中的三个基本方法:

registerObserver:注册用户

removeObserver:移除用户

notifyObserver:通知所有注册的用户

具体实现

气象局(WeatherData)实现Subject接口

第三方网站实现Observer接口

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

相关推荐
老蒋每日coding12 小时前
AI智能体设计模式系列(一)—— 提示词链
设计模式·ai编程
sxlishaobin15 小时前
设计模式之模板方法模式
设计模式·模板方法模式
le16161615 小时前
设计模式之单例模式
单例模式·设计模式
Knight_AL15 小时前
从单例模式说起:Java 常见设计模式的理解与实践
java·单例模式·设计模式
Engineer邓祥浩15 小时前
设计模式学习(10) 23-8 装饰者模式
python·学习·设计模式
老蒋每日coding16 小时前
基于LangGraph的AI Agent并行化设计模式详解
设计模式·ai编程
GISer_Jing16 小时前
AI学习资源总结:免费开放,入门至深入,持续更新
人工智能·学习·设计模式·prompt·aigc
Geoking.17 小时前
【设计模式】策略模式(Strategy)详解:把 if-else 变成可切换的算法
java·设计模式·策略模式
老蒋每日coding17 小时前
AI智能体设计模式系列(二)—— 路由模式
人工智能·设计模式
老蒋每日coding18 小时前
AI智能体设计模式系列(四)—— 反思模式
设计模式