导航:首页 > 编程语言 > observerjava

observerjava

发布时间:2022-08-12 14:07:06

java的回调函数和观察者模式的区别

java的回调 叫listener 模式。
无论是listener模式,还是C++里面的callback模式,本质是一样的
他们都是观察者模式的具体实现。

观察者模式是设计模式中定义的一种思想,而具体到不同的语言环境,使用不同的语法表现出来就会有java的listener objc的 delegate,或者C++的 callback。

❷ JAVA观察者模式(observer pattern)

StockData( extends Observable)只需要关注一个事件就好了。把多余的代码分割出来,封装到一个event事件类里。只要有新事件就通知 Investor( implements Observer)观察者有时间了。具体的时间有观察者调用时间的方法来触发。这样代码会整洁不少,逻辑也会很清晰、、

❸ javas设计模式 对象之间是一对一的关系(一方依赖另一方) 是应该采用state模式 还是observer模式

作为一个使用设计模式超过10年的前辈,我可以负责任地告诉你,你的问题问的有问题。是使用state模式还是observer模式,并不取决于对象之间是否存在一对一的关系。如果你还有疑问,我们可以再交流。

❹ Java JDK内置的Observer已丢弃,用什么来代替

Java 9起淘汰了Observable及相关接口。

如果用Observable写的对象事件订阅机制,推荐用java.beans相关的类来代替。
如果用Observable写的进程间通信机制,文档推荐用java.util.concurrent并行库相关的类来代替。
如果用Observable写的反应式流水线机制,文档推荐用并行库的Flow及Future等类来代替。
如果仅仅是为了实现观察者设计模式,可以写自定义的类...或直接剪贴源码

❺ Observer模式的实例

该实例模拟了烧水的过程,涉及三个对象,Heater(热水器),Display(显示器),Alarm(报警器).
模拟过程:为了便于运行,水的初始化温度为90,沸点为95,显示器依据热水器显示温度,显示器显示温度为95时,报警器开始报警。明显可以看出Heater是subject ,Display 是它的 Obsrver,同时Display亦是subject,因为它要被报警器观察,所以Alarm是Display的Observer.
实现过程:
a.Heater.java
Java代码
import java.util.Observable;
public class Heater extends Observable {
private int temperature;
public int getTemperature() {
return temperature;
}
public void setTemperature(int temperature) {
this.temperature = temperature;
}
public void boilWater() {
for (int i = 90; i < 100; i++) {
temperature = i;
this.setChanged();
this.notifyObservers();
}
}
}
b.Display.java
Java代码
import java.util.Observable;
import java.util.Observer;
public class Display extends Observable implements Observer {
private String status = 未开;
public void setStatus(String status) {
this.status = status;
}
public void displayTemputer(int temperature) {
if (temperature > 95) {
this.setStatus(沸腾);
this.setChanged();
this.notifyObservers();
}
System.out.println(状态: + status + 现在温度: + temperature + );
}
public void update(Observable o, Object arg) {
displayTemputer(((Heater) o).getTemperature());//这里不是很好
}
}
c.Alarm.java
Java代码
import java.util.Observable;
import java.util.Observer;
public class Alarm implements Observer {
public void makeAlarm() {
System.out.println(嘀嘀嘀...水已经烧开 );
}
public void update(Observable o, Object arg) {
makeAlarm();
}
}
d.测试类testObserver.java
Java代码
public class testObserver {
public static void main(String[] args) {
Heater heater = new Heater();
Display display = new Display();
Alarm alarm = new Alarm();
heater.addObserver(display);
display.addObserver(alarm);
heater.boilWater();
}
}
e.运行结果:
引用
状态:未开 现在温度:90
状态:未开 现在温度:91
状态:未开 现在温度:92
状态:未开 现在温度:93
状态:未开 现在温度:94
状态:未开 现在温度:95
嘀嘀嘀...水已经烧开
状态:沸腾 现在温度:96
嘀嘀嘀...水已经烧开
状态:沸腾 现在温度:97
嘀嘀嘀...水已经烧开
状态:沸腾 现在温度:98
嘀嘀嘀...水已经烧开
状态:沸腾 现在温度:99

❻ java绘图ImageObserver observer,观察者是什么意思

public interface ImageObserver
用于在构造 Image 时,接收有关 Image 信息通知的异步更新接口。
字段摘要
static int ABORT
imageUpdate 的 infoflags 参数中的此标志指示被异步跟踪的图像在生成完成前即已中止。
static int ALLBITS
imageUpdate 的 infoflags 参数中的此标志指示现在已完成了一幅以前绘制的静态图像,并且可以其最终形式再次绘制它。
static int ERROR
imageUpdate 的 infoflags 参数中的此标志指示被异步跟踪的图像遇到了错误。
static int FRAMEBITS
imageUpdate 的 infoflags 参数中的此标志指示多帧图像(以前绘制的)的另一个完整帧现在可以再次绘制。
static int HEIGHT
imageUpdate 的 infoflags 参数中的此标志指示基本图像的高度现在可用,并且可从 height 参数中获取此高度到 imageUpdate 回调方法。
static int PROPERTIES
imageUpdate 的 infoflags 参数中的此标志指示该图像的属性现在可用。
static int SOMEBITS
imageUpdate 的 infoflags 参数中的此标志指示已提供了绘制图像缩放变体所需的更多像素。
static int WIDTH
imageUpdate 的 infoflags 参数中的此标志指示基本图像的宽度现在可用,并且可从 width 参数中获取此宽度到 imageUpdate 回调方法。

❼ implements Observer java中什么意思

observer 是一种设计模式
implements Observer java:用java实现observer这种设计模式
具体的实现方法你可以从“Gang of Four”编写的《设计模式》这本书中找到答案

阅读全文

与observerjava相关的资料

热点内容
做账为什么要用加密狗 浏览:583
考研群体怎么解压 浏览:156
linux修改命令提示符 浏览:224
圆圈里面k图标是什么app 浏览:59
pdf加空白页 浏览:945
linux服务器如何看网卡状态 浏览:316
解压新奇特视频 浏览:704
图书信息管理系统java 浏览:552
各种直线命令详解 浏览:862
程序员泪奔 浏览:147
素材怎么上传到服务器 浏览:516
android百度离线地图开发 浏览:189
web可视化编程软件 浏览:293
java笔试编程题 浏览:746
win11什么时候可以装安卓 浏览:564
java不写this 浏览:1001
云点播电影网php源码 浏览:97
pythonclass使用方法 浏览:226
移动加密软件去哪下载 浏览:294
php弹出alert 浏览:209