觀察者模式

報紙與雜志的訂閱

  1. 向報社訂閱了報紙,一旦有新報紙出來,他們就會主動送報到門;
  2. 如果不想看了,取消報紙訂閱,就不會送報了;
  3. 只要報社一直在運營,就會不斷有人定或取消報紙定制,報社也一直會向訂報方發(fā)送報紙;

** 出版社 + 訂閱者 = 觀察者模式 **

在觀察者模式中,出版社叫做“主題”(Subject),訂閱者改稱為“觀察者”(Observer)。

觀察者模式定義了對象之間的一對多依戀,當(dāng)主題對象改變時,它的所有依戀著都會受到通知,并自動更新;

觀察者模式提供一種對象設(shè)計、讓主題與觀察者之間松耦合;

** 類圖 **

Paste_Image.png

** 主題與觀察者之間的數(shù)據(jù)傳遞 **
當(dāng)主題對象發(fā)生數(shù)據(jù)改變時,會主動通知所有觀察者,將數(shù)據(jù)“推 push”給所有觀察者; 當(dāng)前主題也可以添加一些公開的 getter 方法,也就是 “拉 pull”,用以觀察者來獲取自己感興趣的數(shù)據(jù);

在JDK內(nèi)置的觀察者模式框架中,2種方式都支持;jdk中的主題,是個抽象類;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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