導航:首頁 > 編程語言 > 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相關的資料

熱點內容
window怎麼登陸伺服器 瀏覽:992
Python取ID對應的值 瀏覽:633
現在我的世界什麼伺服器最混亂 瀏覽:764
美國好的源碼出售 瀏覽:325
蘋果ipad文件夾怎麼添加文字 瀏覽:485
騰訊雲連接自己的伺服器地址 瀏覽:218
碩士英語綜合教程pdf 瀏覽:46
分段加密的安全性 瀏覽:507
咪咕直播為什麼沒有適配安卓系統 瀏覽:172
php模版大全 瀏覽:102
沒車能解壓嗎 瀏覽:634
php開發oa系統源碼 瀏覽:759
怎麼安裝蘋果ios的app 瀏覽:581
app拉新如何機刷 瀏覽:480
zendeclipseforphp 瀏覽:480
同時有幾個微信如何加密微信 瀏覽:86
大眾20t壓縮比 瀏覽:566
程序員要記住的500個單詞 瀏覽:831
wq快捷方式在哪個文件夾 瀏覽:965
雲南到河北源碼 瀏覽:92