设计模式-观察者模式

背景

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

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

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

传统思路:

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

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

基本介绍

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

两个角色

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

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

Subject中的三个基本方法:

registerObserver:注册用户

removeObserver:移除用户

notifyObserver:通知所有注册的用户

具体实现

气象局(WeatherData)实现Subject接口

第三方网站实现Observer接口

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

相关推荐
葬送的代码人生9 小时前
别再让 AI 瞎写代码了!Vibe Coding 三步法教你写出靠谱代码
前端·设计模式·架构
无风听海12 小时前
Claude Agent Skills 的四种设计模式;从渐进式披露到最小权限
java·算法·设计模式
富贵冼中求13 小时前
从单向流到双向 RPC:Agent 通信协议的范式分叉与 ACP 协议实战拆解
设计模式·架构
电子科技圈16 小时前
先进封装、芯粒架构和3D集成——先进异构集成亟需兼具标准化与定制化能力的互联及总线IP解决方案
tcp/ip·设计模式·架构·软件构建·代码规范·设计规范
zjun100118 小时前
C++:2.工厂模式
设计模式
触底反弹19 小时前
🤯 面试被问 AI Workflow 和 Agent 有啥区别?3 张图 + 2 段代码讲清楚!
人工智能·设计模式·面试
杨充2 天前
10.可测试性实战设计
设计模式·开源·代码规范
杨充2 天前
9.重构十二式的实战
设计模式·开源·代码规范
杨充2 天前
6.设计原则的全景图
设计模式·开源·全栈
杨充2 天前
2.面向对象的特性
设计模式