最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

設(shè)計模式:觀察者模式

2022-07-16 16:38 作者:做架構(gòu)師不做框架師  | 我要投稿


什么是觀察者模式

觀察者模式(Observer Pattern),也叫做發(fā)布/訂閱模型(Publish/Subscribe)。在此種模式中,一個目標(biāo)物件管理所有相依于它的觀察者物件,并且在它本身的狀態(tài)改變時主動發(fā)出通知。這通常透過呼叫各觀察者所提供的方法來實(shí)現(xiàn)。此種模式通常被用在即時事件處理系統(tǒng)。

一句話歸納

解耦觀察者與被觀察者

示例

在我很小的時候,我看過很多動畫片,比如“藍(lán)貓?zhí)詺馊枴薄ⅰ吧颀埗肥俊?、“迪迦奧特曼”等等,但有一部動畫片雖然全程文字少的可憐,但還是讓我的童年充滿樂趣,它叫做“貓和老鼠”,我記得有一個故事講的是某一個夜晚,湯姆找杰瑞玩游戲,但杰瑞想盡辦法叫醒湯姆的主人,主人醒了打了湯姆一頓,很搞笑~

在這個故事中,湯姆是被觀察者,而杰瑞和主人是觀察者,代碼如下:

適用性

以下場景我建議你考慮使用

  • 一個對象的改變將導(dǎo)致其他一個或多個對象也發(fā)生改變,而不知道具體有多少對象將發(fā)生改變,可以降低對象之間的耦合度。

  • 實(shí)現(xiàn)類似廣播機(jī)制的功能,不需要知道具體收聽者,只需分發(fā)廣播,系統(tǒng)中感興趣的對象會自動接收該廣播。

  • 需要在系統(tǒng)中創(chuàng)建一個觸發(fā)鏈,可以使用觀察者模式創(chuàng)建一種鏈?zhǔn)接|發(fā)機(jī)制

局限性

以下場景我建議你謹(jǐn)慎使用

  • 目標(biāo)與觀察者之間的依賴關(guān)系并沒有完全解除,而且有可能出現(xiàn)循環(huán)引用。

  • 當(dāng)觀察者對象很多時,通知的發(fā)布會花費(fèi)很多時間,影響程序的效率。

END

好兄弟可以點(diǎn)贊并關(guān)注我的公眾號“javaAnswer”,全部都是干貨。


設(shè)計模式:觀察者模式的評論 (共 條)

分享到微博請遵守國家法律
连城县| 南陵县| 陆河县| 东海县| 宁国市| 赫章县| 台湾省| 祁东县| 惠州市| 长葛市| 浦城县| 三穗县| 旬阳县| 临桂县| 绩溪县| 资中县| 萍乡市| 平和县| 广昌县| 太湖县| 镇赉县| 绥德县| 纳雍县| 科尔| 烟台市| 东至县| 内乡县| 房山区| 湘阴县| 霍州市| 平乐县| 太原市| 开封市| 西宁市| 沈阳市| 宜都市| 中宁县| 乌拉特后旗| 资中县| 陕西省| 屏东县|