java设计模式----观测者模式
目录
一、介绍建观测模式
观测者模式是一种比较重要的设计模式,观测者模式也叫发布
二、jdk 自带的观测者模式实现
在
这个对象需要继承

package observer; import java.util.Observable; /** * 能被观测的对象 * @author HYSong * */ public class Data extends Observable{ int data; /** * @param data 要设置的 data */ public void setData(int data) { this.data = data; //改变状态 setChanged(); //通知观测者 notifyObservers(data); } }
这个对象需要实现

package observer; import java.util.Observable; import java.util.Observer; /** * 观测者 * @author HYSong * */ public class View implements Observer{ @Override public void update(Observable o, Object arg) { display((int)arg); } void display(int arg) { System.out.println("Data:"+arg); } }
如果一个被观测对象绑定了多个观测者的话,那么当改变了一个事件时,会被推送到多个观测者上,所有观测者的
如果一个观测者观测了多个被观测者的话,我们可以判断类型这个对象的类型是否为观测者的对象类型。这样就可以区分是来自哪个推送者的消息。

package observer; import java.util.Observable; import java.util.Observer; /** * 观测者 * @author HYSong * */ public class View implements Observer{ @Override public void update(Observable o, Object arg) { if(o instanceof Data) { display((int)arg); } } void display(int arg) { System.out.println("Data:"+arg); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!