




已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
java設(shè)計(jì)模式之代理模式1,什么是代理模式?代理模式的作用是:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。2,策略模式有什么好處? 在某些情況下,一個(gè)客戶(hù)不想或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以在客戶(hù)端和目標(biāo)對(duì)象之間起到中介的作用。 3,代理模式一般涉及到的角色有: 抽象角色:聲明真實(shí)對(duì)象和代理對(duì)象的共同接口; 代理角色:代理對(duì)象角色內(nèi)部含有對(duì)真實(shí)對(duì)象的引用,從而可以操作真實(shí)對(duì)象,同時(shí)代理對(duì)象提供與真實(shí)對(duì)象相同的接口以便在任何時(shí)刻都能代替真實(shí)對(duì)象。同時(shí),代理對(duì)象可以在執(zhí)行真實(shí)對(duì)象操作時(shí),附加其他的操作,相當(dāng)于對(duì)真實(shí)對(duì)象進(jìn)行封裝。 真實(shí)角色:代理角色所代表的真實(shí)對(duì)象,是我們最終要引用的對(duì)象。 4,應(yīng)用場(chǎng)景舉例:比如西門(mén)慶找潘金蓮,那潘金蓮不好意思答復(fù)呀,咋辦,找那個(gè)王婆做代理,表現(xiàn)在程序上時(shí)是這樣的體現(xiàn)的先說(shuō)說(shuō)這個(gè)場(chǎng)景中的要素:一種類(lèi)型的女人,潘金蓮,王婆,西門(mén)慶,后來(lái)擴(kuò)展的賈氏也和西門(mén)慶勾上了,我們是假設(shè)的,然后西門(mén)慶找潘金蓮happy,但潘金蓮不好意思直接,就找個(gè)王婆代理唄。我們看看具體代碼。先定義一種女人Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *定義一種類(lèi)型的女人,王婆和潘金蓮都屬于這個(gè)類(lèi)型的女人 6. */7. publicinterfaceKindWoman 8. 9. /這種女人能做什么事情呢? 10. publicvoidmakeEyesWithMan();/拋媚眼 11. 12. publicvoidhappyWithMan();/和男人那個(gè). 13. 14. package xy;/* * * author 阿福() *定義一種類(lèi)型的女人,王婆和潘金蓮都屬于這個(gè)類(lèi)型的女人 */public interface KindWoman /這種女人能做什么事情呢?public void makeEyesWithMan();/拋媚眼public void happyWithMan();/和男人那個(gè).一種類(lèi)型嘛,那肯定是接口,定義個(gè)潘金蓮Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *定義一個(gè)潘金蓮是什么樣的人 6. */7. publicclassPanJinLianimplementsKindWoman 8. 9. Override10. publicvoidhappyWithMan() 11. System.out.println(潘金蓮和男人在做那個(gè).); 12. 13. 14. 15. Override16. publicvoidmakeEyesWithMan() 17. System.out.println(潘金蓮拋媚眼.); 18. 19. 20. 21. package xy;/* * * author 阿福() *定義一個(gè)潘金蓮是什么樣的人 */public class PanJinLian implements KindWomanOverridepublic void happyWithMan() System.out.println(潘金蓮和男人在做那個(gè).);Overridepublic void makeEyesWithMan() System.out.println(潘金蓮拋媚眼.);再定義個(gè)丑陋的王婆Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *王婆這個(gè)人老聰明了,她太老了,是個(gè)男人都看不上她, 6. *但是她有智慧經(jīng)驗(yàn)呀,他作為一類(lèi)女人的代理! 7. */8. publicclassWangPoimplementsKindWoman 9. 10. privateKindWomankindWoman; 11. 12. publicWangPo() 13. /默認(rèn)的話是潘金蓮的代理 14. this.kindWoman=newPanJinLian(); 15. 16. /她可以是KindWomam的任何一個(gè)女人的代理,只要你是這一類(lèi)型 17. publicWangPo(KindWomankindWoman) 18. this.kindWoman=kindWoman; 19. 20. 21. Override22. publicvoidhappyWithMan() 23. /自己老了,干不了了,但可以叫年輕的代替。 24. this.kindWoman.happyWithMan(); 25. 26. 27. 28. Override29. publicvoidmakeEyesWithMan() 30. /王婆年紀(jì)大了,誰(shuí)看她拋媚眼啊 31. this.kindWoman.makeEyesWithMan(); 32. 33. 34. 35. package xy;/* * * author 阿福() *王婆這個(gè)人老聰明了,她太老了,是個(gè)男人都看不上她, *但是她有智慧經(jīng)驗(yàn)呀,他作為一類(lèi)女人的代理! */public class WangPo implements KindWoman private KindWoman kindWoman;public WangPo()/默認(rèn)的話是潘金蓮的代理this.kindWoman = new PanJinLian();/她可以是KindWomam的任何一個(gè)女人的代理,只要你是這一類(lèi)型public WangPo(KindWoman kindWoman)this.kindWoman = kindWoman;Overridepublic void happyWithMan() /自己老了,干不了了,但可以叫年輕的代替。this.kindWoman.happyWithMan();Overridepublic void makeEyesWithMan() /王婆年紀(jì)大了,誰(shuí)看她拋媚眼啊this.kindWoman.makeEyesWithMan(); 兩個(gè)女主角都上場(chǎng)了,該男主角了,定義個(gè)西門(mén)慶Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *水滸傳是這樣寫(xiě)的:西門(mén)慶被潘金蓮用竹竿敲了一下,西門(mén)慶看癡迷了,被王婆看到了,就開(kāi)始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: 6. *如果沒(méi)有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說(shuō)得很! 7. */8. publicclassXiMenQiang 9. 10. /* 11. *paramargs 12. */13. publicstaticvoidmain(Stringargs) 14. WangPowangPo; 15. /把王婆叫出來(lái) 16. wangPo=newWangPo(); 17. /然后西門(mén)慶說(shuō),我要和潘金蓮Happy,然后王婆就安排了西門(mén)慶丟筷子哪出戲: 18. wangPo.makeEyesWithMan(); 19. /看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮 20. wangPo.happyWithMan(); 21. 22. 23. 24. 25. 26. package xy;/* * * author 阿福() *水滸傳是這樣寫(xiě)的:西門(mén)慶被潘金蓮用竹竿敲了一下,西門(mén)慶看癡迷了,被王婆看到了,就開(kāi)始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: *如果沒(méi)有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說(shuō)得很! */public class XiMenQiang /* * param args */public static void main(String args) WangPo wangPo;/把王婆叫出來(lái) wangPo = new WangPo();/然后西門(mén)慶說(shuō),我要和潘金蓮Happy,然后王婆就安排了西門(mén)慶丟筷子哪出戲:wangPo.makeEyesWithMan();/看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮wangPo.happyWithMan(); 那這就是活生生的一個(gè)例子,通過(guò)代理人實(shí)現(xiàn)了某種目的,如果真去了王婆這個(gè)中間環(huán)節(jié),直接西門(mén)慶和潘金蓮勾搭,估計(jì)很難成就武松殺嫂事件。 那我們?cè)倏紤]一下,水滸里面還有沒(méi)有這類(lèi)型的女人?有,盧俊義的老婆賈氏(就是和那個(gè)管家茍合的那個(gè)),這個(gè)名字起的:“賈氏”,那我們也讓王婆做她的代理:Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *定義一個(gè)賈氏是什么樣的人 6. */7. publicclassJiaShiimplementsKindWoman 8. 9. Override10. publicvoidhappyWithMan() 11. System.out.println(賈氏和男人在做那個(gè).); 12. 13. 14. 15. Override16. publicvoidmakeEyesWithMan() 17. System.out.println(賈氏拋媚眼.); 18. 19. 20. 21. 22. package xy;/* * * author 阿福() *定義一個(gè)賈氏是什么樣的人 */public class JiaShi implements KindWoman Overridepublic void happyWithMan() System.out.println(賈氏和男人在做那個(gè).);Overridepublic void makeEyesWithMan() System.out.println(賈氏拋媚眼.); 西門(mén)慶勾潘金蓮又勾引賈氏Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *水滸傳是這樣寫(xiě)的:西門(mén)慶被潘金蓮用竹竿敲了一下,西門(mén)慶看癡迷了,被王婆看到了,就開(kāi)始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: 6. *如果沒(méi)有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說(shuō)得很! 7. */8. publicclassXiMenQiang 9. 10. /* 11. *paramargs 12. */13. publicstaticvoidmain(Stringargs) 14. WangPowangPo; 15. /把王婆叫出來(lái) 16. wangPo=newWangPo(); 17. /然后西門(mén)慶說(shuō),我要和潘金蓮Happy,然后王婆就安排了西門(mén)慶丟筷子哪出戲: 18. wangPo.makeEyesWithMan(); 19. /看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮 20. wangPo.happyWithMan(); 21. 22. 23. 24. /西門(mén)慶勾引賈氏 25. JiaShijiaShi=newJiaShi(); 26. wangPo=newWangPo(jiaShi); 27. wangPo.makeEyesWithMan(); 28. wangPo.happyWithMan(); 29. 30. 31. 32. package xy;/* * * author 阿福() *水滸傳是這樣寫(xiě)的:西門(mén)慶被潘金蓮用竹竿敲了一下,西門(mén)慶看癡迷了,被王婆看到了,就開(kāi)始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: *如果沒(méi)有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說(shuō)得很! */public class XiMenQiang /* * param args */public static void main(String args) WangPo wangPo;/把王婆叫出來(lái) wangPo = new WangPo();/然后西門(mén)慶說(shuō),我要和潘金蓮Happy,然后王婆就安排了西門(mén)慶丟筷子哪出戲:wangPo.makeEyesWithMan();/看到?jīng)]有表面是王婆
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國(guó)痔瘡膏行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)電梯組件行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國(guó)玲瓏瓷茶具行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評(píng)估報(bào)告
- 2025至2030中國(guó)特種運(yùn)輸行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 建筑施工圖(培訓(xùn)課件)
- 事故教育培訓(xùn)課件
- 醫(yī)學(xué)生崗前培訓(xùn)
- 教育機(jī)器人智能化教學(xué)輔助工具的發(fā)展趨勢(shì)
- 門(mén)診導(dǎo)診崗前培訓(xùn)
- 個(gè)性化教學(xué)與激發(fā)學(xué)生興趣的實(shí)踐
- 截肢術(shù)患者圍手術(shù)期護(hù)理
- 2024年江西石城縣城投集團(tuán)與贛江源農(nóng)業(yè)發(fā)展有限公司招聘筆試參考題庫(kù)含答案解析
- 《經(jīng)濟(jì)學(xué)基礎(chǔ)》課后題答案
- vcm音圈馬達(dá)制造工藝
- 沖壓作業(yè)安全管理措施
- 牛津上海版初中英語(yǔ)單詞表(六年級(jí)至九年級(jí))-
- 喘息性肺炎護(hù)理查房
- 暖氣片購(gòu)銷(xiāo)合同
- 兼職家教個(gè)人求職工作簡(jiǎn)歷模板
- 個(gè)人工作總結(jié)反思-不足之處與改進(jìn)建議
- 【特崗】2017-2019年云南省特崗教師化學(xué)真題全解析版
評(píng)論
0/150
提交評(píng)論