观察者模式示例代码

embedded/2025/2/22 4:19:33/

观察者模式定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。常见于消息队列(MQ)、Zookeeper 事件通知等场景。

java">import java.util.ArrayList;
import java.util.List;// 主题接口
interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notifyObservers();
}// 具体主题类
class NewsAgency implements Subject {private List<Observer> observers = new ArrayList<>();private String news;@Overridepublic void registerObserver(Observer observer) {observers.add(observer);}@Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update(news);}}public void setNews(String news) {this.news = news;notifyObservers();}
}// 观察者接口
interface Observer {void update(String news);
}// 具体观察者类
class NewsChannel implements Observer {private String news;@Overridepublic void update(String news) {this.news = news;System.out.println("Received news: " + news);}
}

http://www.ppmy.cn/embedded/164225.html

相关文章

GRU是什么?GRU对LSTM做了哪些改动?

GRU通过简化门控机制、合并状态向量和简化计算流程等方式&#xff0c;降低了模型的复杂度&#xff0c;提高了训练速度&#xff0c;并且在一些任务上表现优异。 1. 简化了门控机制&#xff1a;GRU只有两个门控单元&#xff08;更新门和重置门&#xff09;。GRU的更新门控制了前…

解决macos安装docker后不能远程连接的问题

解决 macOS 安装 Docker 后无法远程连接的问题 在 macOS 上安装 Docker 之后&#xff0c;默认情况下可能无法通过远程连接&#xff08;如 docker 命令&#xff09;来管理容器。这是因为 macOS 的 Docker 实例运行在一个沙盒环境中&#xff0c;并未暴露 Docker 守护进程的 sock…

基于Python+Sqlite实现的选课系统

基于PythonSqlite实现的选课系统 1.选课系统数据库设计 1.1从ER图到表结构 实体集 课程信息 course (course_id, title, credits, dept_name)开课信息 section (course_id, section_id, start, end, classroom_no, limit, day, lesson)账户信息 account (ID, password, role…

Linux-C/C++《C/8、系统信息与系统资源》

在应用程序当中&#xff0c;有时往往需要去获取到一些系统相关的信息&#xff0c;譬如时间、日期、以及其它一些系统相关信息&#xff0c;本章将向大家介绍如何通过 Linux 系统调用或 C 库函数获取系统信息&#xff0c;譬如获取系统时间、日期以及设置系统时间、日期等&#xf…

用deepseek学大模型05逻辑回归

deepseek.com:逻辑回归的目标函数&#xff0c;损失函数&#xff0c;梯度下降 标量和矩阵形式的数学推导&#xff0c;pytorch真实能跑的代码案例以及模型,数据&#xff0c;预测结果的可视化展示&#xff0c; 模型应用场景和优缺点&#xff0c;及如何改进解决及改进方法数据推导。…

【LeetCode Hot100 矩阵】矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵II

矩阵 1. 矩阵置零&#xff08;Set Matrix Zeroes&#xff09;解题思路步骤&#xff1a; 代码实现 2. 螺旋矩阵&#xff08;Spiral Matrix&#xff09;解题思路具体步骤&#xff1a; 代码实现 3. 旋转矩阵 90 度解决思路代码实现 5. 搜索二维矩阵中的目标值解决思路代码实现 1. …

请求转发和响应重定向

请求转发 请求转发是通过HttpServletRequest对象实现的请求转发是服务器内部行为&#xff0c;对客户端是屏蔽的客户端只产生了一次请求&#xff0c;服务端只产生了一对request和response对象客户端的地址栏是不变的请求的参数是可以继续传递的目标资源可以是Servlet、静态资源…

自己安装一台DeepSeek的服务器

找一台还可以的Linux服务器&#xff0c;登录后执行&#xff1a; curl -fsSL https://ollama.com/install.sh | sh 等待安装完成&#xff1a; 执行命令&#xff0c;根据服务器能力安装不同版本的AI模型&#xff1a; ollama run llama3.2 下一步就开始对话吧&#xff1a; llam…