2013-02-27 256 views
2

是否存在形成「複合」觀察者/可觀察對象的設計模式?
我的意思是我有一個可觀察的A,通知其聽衆一些變化。
每個偵聽器也是一個可觀察對象,並通知其自己的偵聽器(在某些動作中,它確實通過第一個可觀察對象的通知觸發了哪個動作)。
觀察者/觀察對象的「鏈」是否可以設計,或者是否存在標準模式?觀察者/可觀察模式的鏈接

+0

Imho,沒關係。在JDK7中沒有標準的類。 – 2013-02-27 09:03:59

+0

對我來說沒關係。我想知道的是,你添加了「多線程」標籤,但沒有直接在你的文章中提到它。 – 2013-02-27 09:22:19

回答

1

對於你提到的鏈接,我看不出有什麼差別。

觀察者模式的目的是,當一個對象的狀態改變時,它通知有關的變化感興趣的各方(聽衆/觀察者),並讓聽衆根據狀態改變做出反應。

如果聽者的狀態變化,通過設計,通過其他有關方面觀察,我看不出有任何理由爲什麼我不能使用觀察者模式的發佈活動。

然而,它僅僅是另一名觀察員,觀察到的關係。沒有特別的「鏈接」發生。

有點OT:更適合稱爲鏈接的東西是:被觀察的對象O將事件E發送給監聽器A,並且A將傳播該事件給另一個監聽器B.然而在邏輯上他們都在監聽事件起源於O.這種「鏈接」可以通過使用裝飾模式來完成。

0

你的類應該實現這兩個接口:觀察者和主體。 Challange正在向所有觀察者註冊適當的對象。
所有你需要的是增加notifyObservers()notify()方法Observer類(link to wiki)。
請注意,您可以啓動無限循環的通知:A =>B =>C =>A => ...依此類推。