觀察者模式 觸發(fā)聯(lián)動(dòng)
當(dāng)一個(gè)抽象模型有兩個(gè)方面,其中一個(gè)方面的操作依賴于另一個(gè)方面的狀態(tài)變化
如果在更改一個(gè)對(duì)象的時(shí)候,需要同時(shí)連帶改變其他的對(duì)象,而且不知道究竟應(yīng)該 有多少對(duì)象需要被連帶改變
當(dāng)一個(gè)對(duì)象必須通知其他的對(duì)象,但是你又希望這個(gè)對(duì)象和其他的被通知的對(duì)象是松散耦合的
當(dāng)一個(gè)抽象模型有兩個(gè)方面,其中一個(gè)方面的操作依賴于另一個(gè)方面的狀態(tài)變化
如果在更改一個(gè)對(duì)象的時(shí)候,需要同時(shí)連帶改變其他的對(duì)象,而且不知道究竟應(yīng)該 有多少對(duì)象需要被連帶改變
當(dāng)一個(gè)對(duì)象必須通知其他的對(duì)象,但是你又希望這個(gè)對(duì)象和其他的被通知的對(duì)象是松散耦合的
2015-06-22
命名建議
目標(biāo)接口 Subject
觀察者接口 Observer
觀察者接口的更新方法 update
觸發(fā)通知的時(shí)機(jī)先改數(shù)據(jù)后通知
觀察者模式調(diào)用順序 準(zhǔn)備階段1創(chuàng)建目標(biāo)對(duì)象2創(chuàng)建觀察者對(duì)象3相目標(biāo)對(duì)象注冊(cè)觀察者對(duì)象
運(yùn)行階段1改變目標(biāo)對(duì)象的狀態(tài)1.1通知所有注冊(cè)地觀察者對(duì)象進(jìn)行相應(yīng)的處理1.1.1回調(diào)目標(biāo)對(duì)象,獲取相應(yīng)數(shù)據(jù)
通知的順序 觀察之間是平行的
目標(biāo)接口 Subject
觀察者接口 Observer
觀察者接口的更新方法 update
觸發(fā)通知的時(shí)機(jī)先改數(shù)據(jù)后通知
觀察者模式調(diào)用順序 準(zhǔn)備階段1創(chuàng)建目標(biāo)對(duì)象2創(chuàng)建觀察者對(duì)象3相目標(biāo)對(duì)象注冊(cè)觀察者對(duì)象
運(yùn)行階段1改變目標(biāo)對(duì)象的狀態(tài)1.1通知所有注冊(cè)地觀察者對(duì)象進(jìn)行相應(yīng)的處理1.1.1回調(diào)目標(biāo)對(duì)象,獲取相應(yīng)數(shù)據(jù)
通知的順序 觀察之間是平行的
2015-06-22
MIC 的問題嗎?這節(jié)課聽起來(lái)有點(diǎn)累哦。聲音有點(diǎn)含糊~~
2015-06-20
@Wi 如果像你說的對(duì)每個(gè)天氣內(nèi)容作為一個(gè)訂閱者的話,那這樣的設(shè)計(jì)會(huì)不會(huì)使得訂閱者太多,造成結(jié)構(gòu)的復(fù)雜性值得考慮
例如天氣的情況會(huì)有很多種
不單是 下雨,晴天
還有下雪 冰雹 高溫 臺(tái)風(fēng) 等等等等的情況
例如天氣的情況會(huì)有很多種
不單是 下雨,晴天
還有下雪 冰雹 高溫 臺(tái)風(fēng) 等等等等的情況
2015-06-19
@Wi 觀察者模式 是 一個(gè)訂閱者 對(duì)應(yīng)多個(gè)觀察者, 訂閱者是一個(gè)服務(wù),他可以是天氣預(yù)報(bào),也可以是別的服務(wù),
而在天氣預(yù)報(bào)這個(gè)服務(wù)內(nèi)可以發(fā)送各種不同的天氣內(nèi)容
如果像你那樣將每個(gè)天氣內(nèi)容都作為一個(gè)訂閱者的話,一對(duì)一的進(jìn)行觀察的話只是一對(duì)多的一種特例
如何使用需要根據(jù)具體的場(chǎng)景靈活使用
而在天氣預(yù)報(bào)這個(gè)服務(wù)內(nèi)可以發(fā)送各種不同的天氣內(nèi)容
如果像你那樣將每個(gè)天氣內(nèi)容都作為一個(gè)訂閱者的話,一對(duì)一的進(jìn)行觀察的話只是一對(duì)多的一種特例
如何使用需要根據(jù)具體的場(chǎng)景靈活使用
2015-06-19
這樣的實(shí)現(xiàn)不是需要雙向依賴嘛,根本就有問題
假如是我來(lái)實(shí)現(xiàn)我會(huì)將每個(gè)天氣定義一個(gè)訂閱,再讓觀察者進(jìn)行觀察
假如是我來(lái)實(shí)現(xiàn)我會(huì)將每個(gè)天氣定義一個(gè)訂閱,再讓觀察者進(jìn)行觀察
2015-06-19