日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模式的秘密-观察者模式(二)

發(fā)布時(shí)間:2024/9/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模式的秘密-观察者模式(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

認(rèn)識(shí)觀察者模式:

命名建議:

第一:目標(biāo)接口的定義,建議在名稱后面加上Subject。

第二:觀察者接口的定義,建議在名稱后面跟上Observer。

第三:觀察者接口的更新方法,建議名稱為Update。

?

觸發(fā)通知的時(shí)機(jī):完成了狀態(tài)維護(hù)后觸發(fā)。

?

?

實(shí)現(xiàn)的兩種方式:推模型和拉模型

推模型:

目標(biāo)對(duì)象主動(dòng)向觀察者推送目標(biāo)的詳細(xì)信息,推送的信息通常是目標(biāo)對(duì)象的全部或部分?jǐn)?shù)據(jù)。

拉模型:

目標(biāo)對(duì)象在通知觀察者的時(shí)候,只傳遞少量信息。如果觀察者需要更具體的信息,由觀察者主動(dòng)到目標(biāo)對(duì)象中獲取,

相當(dāng)于是觀察者從目標(biāo)對(duì)象中拉數(shù)據(jù)。

一般這種模型的實(shí)現(xiàn)中,會(huì)把目標(biāo)對(duì)象自身通過update方法傳遞給觀察者(上一節(jié)例子就是該模式)

?

如果要把上一節(jié)的拉模型改成推模型,只需要把update方法以及相關(guān)方法的觀察者對(duì)象修改為weatherContent,

把所有的信息全部傳給觀察者調(diào)用,而不是觀察者自己通過傳入的目標(biāo)對(duì)象獲取。

?

兩個(gè)模型比較:

推模型是假定目標(biāo)對(duì)象知道觀察者需要的數(shù)據(jù)。

拉模型是目標(biāo)對(duì)象不知道觀察者需要什么數(shù)據(jù),因此把自身傳給觀察者,由觀察者來取值。

?

推模型會(huì)使得觀察者對(duì)象難以復(fù)用。

拉模型下:update方法的參數(shù)是目標(biāo)對(duì)象本身,基本上可以適用各種情況的需要。

?

總結(jié)

以上是生活随笔為你收集整理的模式的秘密-观察者模式(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。