我正在學習設計模式,我偶然發現了一個問題,我真的不知道如何找到答案。在觀察者設計模式類圖中,我看到一個具體觀察者通常會提到主題。但是,誰設置了該參考的價值?以及如何調用附加函數?觀察者是否根據他們所擁有的主題參考來調用它,或者其他人設置主題,然後將觀察者附加到主題上?我查找了一些例子,但我仍然遇到了麻煩,找到實現這一點的最佳方式。觀察者模式 - 觀察者創建
1
A
回答
2
觀察者是希望被通知有關主題的變化或事件的組件。它決定觀察這個主題,並將自己添加到主題維護的觀察者列表中。
典型的用例是一個包含按鈕的圖形面板。圖形面板創建一個按鈕並將其添加到自身。並且每次點擊該按鈕時都想顯示一個對話框。因此,它將自己添加爲按鈕的觀察者,並且該按鈕會在點擊時通知面板。
在這個例子中,觀察者創建它觀察的對象。但在某些情況下情況並非如此,並且當對主題的引用作爲參數傳遞給其構造函數或其方法之一時。這與觀察者模式本身的原則無關。
1
主體是控制某些事件或具有觀察員感興趣的某些屬性的對象。觀察者向主體註冊表示該興趣,主體保留已註冊觀察者的列表。
當主體的屬性發生變化或發生感興趣的事件時,主體遍歷其註冊的觀察者列表並通知他們有關該更改或事件。
有關通知觀察員的具體細節可能會有所不同。這可能是他們有一個衆所周知的方法被調用。這可能是因爲他們指定了他們想要調用的自定義方法,他們將這些方法指定爲註冊過程的一部分。
相關問題
- 1. 觀察者模式
- 2. 觀察者模式 - 將信息傳遞給觀察者
- 3. 觀察者模式Java - 使用線程的多個觀察者
- 4. 與觀察者模式
- 5. asp.net觀察者模式
- 6. 觀察者模式vs MVC
- 7. 觀察者模式類(JAVA)
- 8. 觀察者模式混淆
- 9. python觀察者模式
- 10. MVC和觀察者模式
- 11. 觀察者模式過載
- 12. 異步觀察者模式
- 13. Vue.js和觀察者模式
- 14. Android「觀察者」
- 15. Java觀察者和可觀察的
- 16. 觀察者模式或其他模式
- 17. 觀察者模式vs電抗模式
- 18. 創建可觀察的並獲得觀察者在RXJS 5.0中
- 19. 觀察者/可觀察模式的鏈接
- 20. 使用RxCpp構造觀察者/可觀察模式
- 21. 初學者JavaFX觀察者
- 22. 當觀察者的觀察者的壽命長於可觀察到的
- 23. NSInternalInconsistencyException觀察者contentSize
- 24. 觀察者和主題觀察者模式之間有什麼區別
- 25. 使用觀察者模式來爲訂閱者建模通知
- 26. 創建焦點的事件觀察者?
- 27. 誰是觀察者,誰是可觀察者?
- 28. Java觀察者模式問題?
- 29. 設計模式觀察者(反向)
- 30. 觀察者模式的策略?
謝謝。我認爲這與我正在尋找的答案非常接近。 – darxsys 2013-05-10 15:51:29