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

熱點內容
如何把掃描文件做成pdf格式 瀏覽:624
php個性qq源碼 瀏覽:821
初學c語言顯示源未編譯 瀏覽:245
資產概況源碼 瀏覽:472
dos命令建文件夾命令 瀏覽:379
解壓的密碼htm被屏蔽 瀏覽:502
冬天太冷冰箱壓縮機不啟動怎麼辦 瀏覽:83
手機打開vcf需要什麼編譯器 瀏覽:910
加密磁碟後開機很慢 瀏覽:271
長沙智能雲控系統源碼 瀏覽:258
阿里雲伺服器如何設置操作系統 瀏覽:999
超級命令的英文 瀏覽:784
做賬為什麼要用加密狗 瀏覽:586
考研群體怎麼解壓 瀏覽:159
linux修改命令提示符 瀏覽:226
圓圈裡面k圖標是什麼app 瀏覽:63
pdf加空白頁 瀏覽:948
linux伺服器如何看網卡狀態 瀏覽:318
解壓新奇特視頻 瀏覽:707
圖書信息管理系統java 瀏覽:554