牛刀小試 JAVA內建 觀察者模式

2021-05-23 13:55:51 字數 659 閱讀 4669

好吧,早上軟考啦,剛才看到有關observer的模式,之前在俱樂部技術交流大會上也聽j總說過這麼乙個詞,感覺是個好東西。

自己寫了個測試方法,驗證了這種模式的一部分功能。跟大家分享一下。

看下api裡面是怎麼定義observer的

這只是個介面,故應該由乙個類來implement.我寫了個myobserver來實現這一介面。

我的observer裡面有個屬性name和方法setname,getname,smile都是簡單方法,不多說。

主要是實現介面中的update方法。

從引數中我們可以看到估計乙個觀察者可以觀察多個被觀察者,故通過observable來區分是哪個被觀察者發過來的更新訊息。

另外乙個引數object是被觀察者向觀察者傳送過來的,估計是讓觀察他的觀察者做某乙個具體的事情。我這裡是要求改名字或者smile一下。

下面我們再來看一下另外乙個內建的類observable,可觀測量

如果想自己控制這個類裡面的setchanged方法,就必須extends這個類。因此myobservable如下

簡單說下**的意思,構造乙個可觀察量,給它增加兩個不同的observer物件。

兩個測試路徑,乙個是改名字,乙個是smile.程式執行如下

兩個observer都收到observable的通知,也都作出了相應的處理。

java觀察者模式

簡單地說,觀察者模式定義了乙個一對多的依賴關係,讓乙個或多個觀察者物件監察乙個主題物件。這樣乙個主題物件在狀態上的變化能夠通知所有的依賴於此物件的那些觀察者物件,使這些觀察者物件能夠自動更新。不多說了,直接給出實現 例1 對某個事件只有乙個訂閱者的例子 author yongxing.shao pu...

觀察者模式java

根據headfirst做出實現如下 主題,觀察者,顯示三個介面。public inte ce observer public inte ce subject public inte ce displayelement 氣象資料實現主題介面 public class weather implement...

JAVA 觀察者模式

實現觀察者模式涉及到乙個類和乙個介面 observable類和observer介面 被觀察的類需要繼承observable類,在該類中的常用方法有 public voidaddobserver observer o 增加乙個觀察者觀察自己 public voiddeleteobserver obse...