-
模式的秘密---觀察者模式——利用Java提供的觀察者實現(xiàn) Java 實現(xiàn) VS 自己實現(xiàn)的對比四點: (1)不需要再定義觀察者和目標(biāo)接口(JDK已經(jīng)定義)。 (2)具體的目標(biāo)實現(xiàn)里面不需要再維護(hù)觀察者的注冊信息,Java中的Observable類里面已經(jīng)實現(xiàn)。 (3)觸發(fā)通知的方式有一點變化,要先調(diào)用setChanged方法,這個是Java為了幫助實現(xiàn)更精確的觸發(fā)控制而提供的功能。 (4)具體觀察者的實現(xiàn)里面,update方法其實能同時支持推模型和拉模型,這個Java在定義的時候,已經(jīng)考慮。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——實現(xiàn)的兩種方式:推模型和拉模型 觀察者模式兩種模式: 1.推模型:目標(biāo)對象主動向觀察者推送目標(biāo)的詳細(xì)信息 ; 推送的信息通常是目標(biāo)信息的全部或部分信息。 2.拉模型:目標(biāo)對象在通知觀察者的時候,只傳遞少量信息 ;如果觀察者需要更具體的信息,由觀察者主動到目標(biāo)對象中獲取,相當(dāng)于是觀察者從目標(biāo)對象中拉數(shù)據(jù);一般這種模型的實現(xiàn)中,會把目標(biāo)對象自身通過update方法傳遞給觀察者。 兩種模型的比較: 推模型是假定目標(biāo)對象知道觀察著需要的數(shù)據(jù)。 拉模型是目標(biāo)對象不知道觀察著具體需要什么數(shù)據(jù),因此把自身傳給觀察者,由觀察者來取值。 推模型會使觀察者對象難于復(fù)用。 拉模型下,update方法的參數(shù)是目標(biāo)對象本身,基本上可以適應(yīng)于各種情況的需要。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——觀察者模式調(diào)用時序圖 II(運行階段) 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——觀察者模式調(diào)用時序圖 I(準(zhǔn)備階段) 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——認(rèn)識觀察者模式 (1)目標(biāo)與觀察者之間的關(guān)系:一對一、一對多、多對一等。 (2)單向依賴:觀察者依賴目標(biāo),而不是目標(biāo)依賴觀察者,觀察者是被動的,目標(biāo)是主動的。 (3)命名建議: 1、目標(biāo)接口的定義,建議在名稱后面跟Subject; 2、觀察者接口的定義,建議在名稱后面跟Observer; 3、觀察者接口的更新方法,建議名稱為update,參數(shù)的個數(shù)及類型不受限制。 (4)觸發(fā)通知的時機(jī):目標(biāo)對象的狀態(tài)發(fā)生維護(hù)之后觸發(fā)。(比如:先賦值內(nèi)容再通知是對的,而反過來就會出現(xiàn)問題) (5)觀察者模式調(diào)用時序:見觀察者模式調(diào)用時序圖I、II。 (6)通知的順序:不確定,平行的,沒有相互依賴關(guān)系。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——觀察者模式結(jié)構(gòu) II Ps:下面兩個分別是它們上面兩個對應(yīng)的接口實現(xiàn)類。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——觀察者模式結(jié)構(gòu) I 觀察者模式的結(jié)構(gòu):Subject(被觀察者或者說是目標(biāo)類):要有添加觀察者,刪除觀察者,和提醒觀察者(當(dāng)被觀察者的狀態(tài)發(fā)生改變的時候調(diào)用這個方法)的方法,Observe(觀察者):要有更新方法(當(dāng)觀察者狀態(tài)發(fā)生改變調(diào)用提醒方法后觀察者通過更新方法來做出不同響應(yīng)(動作))。 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
模式的秘密---觀察者模式——定義 觀察者模式的定義,有多個對象在關(guān)注著一個對象,如果這個對象的狀態(tài)發(fā)生了改變,其它依賴(關(guān)注)它的對象就會收到通知,然后在接收到通知以后各個對象做出相應(yīng)的動作。這里涉及到兩個概念(觀察者和被觀察者(目標(biāo)類)),被觀察者只能有一個,而觀察這個觀察者的對象可以用多個?!疽粚Χ唷? 【溫馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等編程愛好者關(guān)注我,加我慕課好友,互相學(xué)習(xí),共同進(jìn)步!】查看全部
-
什么情況下選用觀察者模式查看全部
-
觀察者模式的本質(zhì)查看全部
-
啦模型查看全部
-
推模型會使觀察者對象難以復(fù)用查看全部
-
推模型和拉模型的比較查看全部
-
拉模型查看全部
-
推模型查看全部
舉報
0/150
提交
取消