機構檔案
- 機構級別:普通會員
- 信用等級:
資料認證
未通過身份證認證
未通過辦學許可認證
- 學校瀏覽人次:次
- 加盟時間:2017年03月10日
新聞動態
西安尚學堂java觀察者模式
發布者:西安尚學堂 發布時間:2017-04-12 來源:西安尚學堂
像activeMQ等消息隊列中,我們經常會使用發布訂閱模式,但是你有沒有想過,客戶端時如何及時得到訂閱的主題的信息?其實就里就用到了觀察者模式。在軟件系統中,當一個對象的行為依賴于另一個對象的狀態時,觀察者模式就相當有用。如果不使用觀察者模式提供的通用結構,而需要我們實現類似的功能,想想我們該如何實現,我們只能在另外一個線程不斷對象所依賴的狀態。當然下面的例子都是基于一個進程內觀察者模式的舉例,你可能會和我當初一樣不解,消息隊列中的消費者是通過socket進行通信得到訂閱的主題的信息。其實還是一回事的,被觀察者(主題)里面會維護一個與它有訂閱的所有消費者的連接,當被觀察者(主題)里面添加一個消息時,就會調用自身的方法,把該消息通過維持的socket發送給所有訂閱的消費者。
下次再跳槽,我就不是僅僅調侃我掌握kafka等消息隊列的特性了,我又可以結合設計模式來侃我對消息隊列的理解,這個逼吹的響亮吧。
觀察者模式可以用于事件,通知發布等場合。可以確保觀察者在不使用輪詢監控的情況下,及時收到相關的消息和事件。
下次再跳槽,我就不是僅僅調侃我掌握kafka等消息隊列的特性了,我又可以結合設計模式來侃我對消息隊列的理解,這個逼吹的響亮吧。
觀察者模式可以用于事件,通知發布等場合。可以確保觀察者在不使用輪詢監控的情況下,及時收到相關的消息和事件。