**:
最近做乙個訊息系統,其中涉及到新訊息數的即時更新,當時就想到了觀察者模式,後來聽同事提到推拉模式,感覺推模式原理上應該還是屬於觀察者模式,只不過把server變成了被觀察物件,client被動觀察
其實推拉模式我們經常遇到,如廣播(推)、http請求(拉),只是沒有刻意去追求概念。設計時還是應該多考慮到。
考慮到效能還效率,最終還是選擇了拉模式,每隔一斷時間請求一次、更新。
下面是引用:
推(push)模式是一種基於客戶器/伺服器機制、由伺服器主動將資訊送到客戶器的技術。在push模式應用中,伺服器把資訊送給客戶器之前,並沒有明顯的客戶請求。push事務由伺服器發起。push模式可以讓資訊主動、快速地尋找使用者/客戶器,資訊的主動性和實時性比較好。但精確性較差,可能推送的資訊並不一定滿足客戶的需求。推送模式不能保證能把資訊送到客戶器,因為推模式採用了廣播機制,如果客戶器正好聯網並且和伺服器在同乙個頻道上,推送模式才是有效的。push模式無法跟蹤狀態,採用了開環控制模式,沒有使用者反饋資訊。在實際應用中,由客戶器向伺服器傳送乙個申請,並把自己的位址(如ip、port)告知伺服器,然後伺服器就源源不斷地把資訊推送到指定位址。在多**資訊廣播中也採用了推模式。另外,如手機***、qq廣播。
拉(pull)模式與推模式相反,是由客戶器主動發起的事務。伺服器把自己所擁有的資訊放在指定位址(如ip、port),客戶器向指定位址傳送請求,把自己需要的資源「拉」回來。不僅可以準確獲取自己需要的資源,還可以及時把客戶端的狀態反饋給伺服器。
觀察者模式(推模型 拉模型)
觀察者模式 observer pattern 當乙個物件被修改時,會自動通知它的依賴物件 現在我們是新聞社,要向所有新聞訂閱者推送新聞。那麼該如何實現呢?經過思考我們不難發現一家新聞社一般對應的是多個新聞訂閱者。那麼我們先從新聞社開始入手,想一想新聞社要具備哪些基本功能呢?1.新聞,2.有哪些訂閱者...
設計模式學習(八) 觀察者模式 1(拉模式)
2019年4月10日 觀察者模式 在物件之間定義了一對多的依賴,這樣一來,當乙個物件改變狀態,依賴它的物件會收到通知並自動更新。其實就是發布訂閱模式,發布者發布資訊,訂閱者獲取資訊,訂閱了就能收到資訊,沒訂閱就收不到資訊。推 push 模式是一種基於客戶器 伺服器機制,由伺服器主動將資訊送到客戶器的...
ZeroMQ 推拉模式
推拉模式,push傳送,send。pull方接收,recv。push可以和多個pull建立連線,push傳送的資料被順序傳送給pull方。比如你push和三個pull建立連線,分別是a,b,c。push傳送的第一資料會給a,第二資料會給b,第三個資料給c,第四個資料給a。一直這麼迴圈。推拉模式可分為...