觀察者模式

觀察者模式

使用場景

存在一個信息提供方(出版者),多個信息獲取方(訂閱者),獲取方需要實(shí)時獲取提供方的消息,并且能第一時間得到消息更新通知。

設(shè)計(jì)思想

消息獲取方需要在出版者一方進(jìn)行注冊,成為訂閱者,每當(dāng)出版者的信息更新時,出版者會向自己所有的訂閱者發(fā)出通知。

當(dāng)訂閱者不想接受消息時,取消在出版者方的訂閱。

因?yàn)榇a太多, 所以下面的例子都以偽代碼實(shí)現(xiàn)

interface Object {
    //注冊訂閱者
    void register()
    //移除訂閱者
    void remove()
    //通知訂閱者
    void notify()
}

interface Observer {
    //更新消息
    void update()
}

上述是一個觀察者模式的簡單示例,同時在Java也內(nèi)置了觀察者模式的接口,具體如下:

//出版者(可被觀察者)(class)
//需要注意的是Observable是一個類而不是一個接口
java.util.Observable
//訂閱者(觀察者)(interface)
java.util.Observer
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.初識觀察者模式 定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被...
    王偵閱讀 1,092評論 0 1
  • 【學(xué)習(xí)難度:★★★☆☆,使用頻率:★★★★★】直接出處:觀察者模式梳理和學(xué)習(xí):https://github.com...
    BruceOuyang閱讀 1,672評論 1 5
  • 什么是觀察者模式?我們先打個比方,這就像你訂報(bào)紙。比如你想知道美國最近放生了些新聞,你可能會訂閱一份美國周刊,然后...
    泥孩兒0107閱讀 776評論 0 0
  • 觀察者模式 觀察者模式是這樣一種設(shè)計(jì)模式。一個被稱作被觀察者的對象,維護(hù)一組被稱為觀察者的對象,這些對象依賴于被觀...
    伯納烏的追風(fēng)少年閱讀 323評論 0 1
  • 會考前夕,父母工作繁忙。為了不讓我因做飯浪費(fèi)學(xué)習(xí)時間,奶奶每天晚上都會來為我送上可口的晚飯,為我?guī)砜鞓?。在無趣的...
    憑海琳風(fēng)閱讀 638評論 1 0

友情鏈接更多精彩內(nèi)容