2013-11-22 40 views
-1

如果我理解正確,在觀察者設計模式中,具體的觀察者將具體的子噴射作爲場。這是因爲在四人幫的書所示:java.util.Observable不遵循GoF的觀察者設計模式,對吧?

enter image description here

在另一方面,在的java.util.ObservablenotifyObserver(Object arg)實施,對象被再次傳遞給觀察者(見source code

enter image description here

如果具體主題應該可以通過具體觀察者中的某個領域參考(如GoF的規範),爲什麼我們再次向觀察者發送具體主題(如java.util.observable代碼)這似乎是t o建議我java.util.Observable不遵循GoF的規範。我在這裏誤解了一些東西嗎?謝謝。

+4

模式就是這樣一種模式,它實際上並沒有禁止具體的實現。 –

+0

@Mark謝謝。所以你已經確認我java.util.Observable不遵循GoF的規範,對不對? – zell

+1

@zell在進入各種模式的實際細節之前,請再次瀏覽GoF的介紹和初始章節,以更好地理解「什麼是設計模式」,這種理解對於任何程序員來說絕對是必不可少的! –

回答

3

是的,實現不同。

但是!

該模式是概念,而不是實現。這個概念是一樣的。在這兩種情況下,觀察者都會參考觀察到的項目,但您絕對可以想象觀察者根本不需要這種參考的情況。

所以這裏的概念是「當別的東西改變狀態或以某種方式執行時得到通知」,它比任何實現都要廣泛得多。