news 2026/4/22 13:12:04

行为型模式:观察者模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
行为型模式:观察者模式

文章目录

  • 天气预报项目需求
  • 天气预报设计方案:普通方案
    • WeatherData 类
    • 示意图
    • 代码实现
    • 问题分析
  • 观察者模式原理
  • 观察者模式解决天气预报需求
    • 类图说明
    • 代码实现
    • 观察者模式的好处
  • 观察者模式在 JDK 应用的源码分析

如果文章对您有用,请关注点赞加收藏,博主会持续更新相关的专栏笔记🫡

天气预报项目需求

天气预报项目需求,具体要求如下:

  • 气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去【比如发布到自己的网站或第三方】。
  • 需要设计开放型 API,便于其他第三方也能接入气象站获取数据。
  • 提供温度、气压和湿度的接口。
  • 测量数据更新时,要能实时的通知给第三方。

天气预报设计方案:普通方案

WeatherData 类

通过对气象站项目的分析,我们可以初步设计出一个 WeatherData 类:

说明:

  • 通过 getXxx() 方法,可以让第三方接入,并得到相关信息。
  • 当数据有更新时,气象站通过调用 dataChange() 去更新数据,当第三方再次获取时,就能得到最新数据,当然也可以推送。

示意图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 17:46:26

39、编程与开发相关知识及环境搭建与许可协议解读

编程与开发相关知识及环境搭建与许可协议解读 编程术语解释 在编程领域,有许多重要的术语和概念,下面为大家详细介绍一些常见的术语。 - SVG :一种基于 XML 文档类型的开放标准矢量图形格式,常用于创建可缩放的图形。 - 同步(synchronous) :使用同步 I/O 操作的程…

作者头像 李华
网站建设 2026/4/18 7:02:06

23、Ubuntu相关工具与社区介绍

Ubuntu相关工具与社区介绍 在Ubuntu的生态系统中,有众多实用的工具和活跃的社区。下面为你详细介绍这些内容。 一、Launchpad相关工具 Launchpad Blueprint Tracker(蓝图跟踪器) - 功能概述 :这是Ubuntu自定义的规范和特性跟踪系统。用户能创建规范页面,并链接到现…

作者头像 李华
网站建设 2026/4/18 10:07:47

MySQL内置函数

1. 日期函数函数名称描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回 datetime 参数的日期部分date_add(date, interval d_value_type)在 date 中添加日期或时间interval 后的数值单位可以是:year minute second…

作者头像 李华
网站建设 2026/4/21 8:12:29

11fps实时视频生成革命:Krea Realtime 14B如何重塑内容创作范式

11fps实时视频生成革命:Krea Realtime 14B如何重塑内容创作范式 【免费下载链接】krea-realtime-video 项目地址: https://ai.gitcode.com/hf_mirrors/krea/krea-realtime-video 导语 2025年10月,Krea AI发布的Realtime 14B模型标志着实时视频生…

作者头像 李华
网站建设 2026/4/17 13:49:38

NocoDB数据导出实战指南:5分钟掌握CSV/JSON双格式导出技巧

NocoDB数据导出实战指南:5分钟掌握CSV/JSON双格式导出技巧 【免费下载链接】nocodb nocodb/nocodb: 是一个基于 node.js 和 SQLite 数据库的开源 NoSQL 数据库,它提供了可视化的 Web 界面用于管理和操作数据库。适合用于构建简单的 NoSQL 数据库&#xf…

作者头像 李华