java設(shè)計(jì)模式之——代理模式.doc_第1頁
java設(shè)計(jì)模式之——代理模式.doc_第2頁
java設(shè)計(jì)模式之——代理模式.doc_第3頁
java設(shè)計(jì)模式之——代理模式.doc_第4頁
java設(shè)計(jì)模式之——代理模式.doc_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

java設(shè)計(jì)模式之代理模式1,什么是代理模式?代理模式的作用是:為其他對象提供一種代理以控制對這個(gè)對象的訪問。2,策略模式有什么好處? 在某些情況下,一個(gè)客戶不想或者不能直接引用另一個(gè)對象,而代理對象可以在客戶端和目標(biāo)對象之間起到中介的作用。 3,代理模式一般涉及到的角色有: 抽象角色:聲明真實(shí)對象和代理對象的共同接口; 代理角色:代理對象角色內(nèi)部含有對真實(shí)對象的引用,從而可以操作真實(shí)對象,同時(shí)代理對象提供與真實(shí)對象相同的接口以便在任何時(shí)刻都能代替真實(shí)對象。同時(shí),代理對象可以在執(zhí)行真實(shí)對象操作時(shí),附加其他的操作,相當(dāng)于對真實(shí)對象進(jìn)行封裝。 真實(shí)角色:代理角色所代表的真實(shí)對象,是我們最終要引用的對象。 4,應(yīng)用場景舉例:比如西門慶找潘金蓮,那潘金蓮不好意思答復(fù)呀,咋辦,找那個(gè)王婆做代理,表現(xiàn)在程序上時(shí)是這樣的體現(xiàn)的先說說這個(gè)場景中的要素:一種類型的女人,潘金蓮,王婆,西門慶,后來擴(kuò)展的賈氏也和西門慶勾上了,我們是假設(shè)的,然后西門慶找潘金蓮happy,但潘金蓮不好意思直接,就找個(gè)王婆代理唄。我們看看具體代碼。先定義一種女人Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *定義一種類型的女人,王婆和潘金蓮都屬于這個(gè)類型的女人 6. */7. publicinterfaceKindWoman 8. 9. /這種女人能做什么事情呢? 10. publicvoidmakeEyesWithMan();/拋媚眼 11. 12. publicvoidhappyWithMan();/和男人那個(gè). 13. 14. package xy;/* * * author 阿福() *定義一種類型的女人,王婆和潘金蓮都屬于這個(gè)類型的女人 */public interface KindWoman /這種女人能做什么事情呢?public void makeEyesWithMan();/拋媚眼public void happyWithMan();/和男人那個(gè).一種類型嘛,那肯定是接口,定義個(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)呀,他作為一類女人的代理! 7. */8. publicclassWangPoimplementsKindWoman 9. 10. privateKindWomankindWoman; 11. 12. publicWangPo() 13. /默認(rèn)的話是潘金蓮的代理 14. this.kindWoman=newPanJinLian(); 15. 16. /她可以是KindWomam的任何一個(gè)女人的代理,只要你是這一類型 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ì)大了,誰看她拋媚眼啊 31. this.kindWoman.makeEyesWithMan(); 32. 33. 34. 35. package xy;/* * * author 阿福() *王婆這個(gè)人老聰明了,她太老了,是個(gè)男人都看不上她, *但是她有智慧經(jīng)驗(yàn)呀,他作為一類女人的代理! */public class WangPo implements KindWoman private KindWoman kindWoman;public WangPo()/默認(rèn)的話是潘金蓮的代理this.kindWoman = new PanJinLian();/她可以是KindWomam的任何一個(gè)女人的代理,只要你是這一類型public WangPo(KindWoman kindWoman)this.kindWoman = kindWoman;Overridepublic void happyWithMan() /自己老了,干不了了,但可以叫年輕的代替。this.kindWoman.happyWithMan();Overridepublic void makeEyesWithMan() /王婆年紀(jì)大了,誰看她拋媚眼啊this.kindWoman.makeEyesWithMan(); 兩個(gè)女主角都上場了,該男主角了,定義個(gè)西門慶Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *水滸傳是這樣寫的:西門慶被潘金蓮用竹竿敲了一下,西門慶看癡迷了,被王婆看到了,就開始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: 6. *如果沒有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說得很! 7. */8. publicclassXiMenQiang 9. 10. /* 11. *paramargs 12. */13. publicstaticvoidmain(Stringargs) 14. WangPowangPo; 15. /把王婆叫出來 16. wangPo=newWangPo(); 17. /然后西門慶說,我要和潘金蓮Happy,然后王婆就安排了西門慶丟筷子哪出戲: 18. wangPo.makeEyesWithMan(); 19. /看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮 20. wangPo.happyWithMan(); 21. 22. 23. 24. 25. 26. package xy;/* * * author 阿福() *水滸傳是這樣寫的:西門慶被潘金蓮用竹竿敲了一下,西門慶看癡迷了,被王婆看到了,就開始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: *如果沒有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說得很! */public class XiMenQiang /* * param args */public static void main(String args) WangPo wangPo;/把王婆叫出來 wangPo = new WangPo();/然后西門慶說,我要和潘金蓮Happy,然后王婆就安排了西門慶丟筷子哪出戲:wangPo.makeEyesWithMan();/看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮wangPo.happyWithMan(); 那這就是活生生的一個(gè)例子,通過代理人實(shí)現(xiàn)了某種目的,如果真去了王婆這個(gè)中間環(huán)節(jié),直接西門慶和潘金蓮勾搭,估計(jì)很難成就武松殺嫂事件。 那我們再考慮一下,水滸里面還有沒有這類型的女人?有,盧俊義的老婆賈氏(就是和那個(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(賈氏拋媚眼.); 西門慶勾潘金蓮又勾引賈氏Java代碼 1. xy; 2. /* 3. * 4. *author阿福() 5. *水滸傳是這樣寫的:西門慶被潘金蓮用竹竿敲了一下,西門慶看癡迷了,被王婆看到了,就開始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: 6. *如果沒有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說得很! 7. */8. publicclassXiMenQiang 9. 10. /* 11. *paramargs 12. */13. publicstaticvoidmain(Stringargs) 14. WangPowangPo; 15. /把王婆叫出來 16. wangPo=newWangPo(); 17. /然后西門慶說,我要和潘金蓮Happy,然后王婆就安排了西門慶丟筷子哪出戲: 18. wangPo.makeEyesWithMan(); 19. /看到?jīng)]有表面是王婆在做,其實(shí)爽的是潘金蓮 20. wangPo.happyWithMan(); 21. 22. 23. 24. /西門慶勾引賈氏 25. JiaShijiaShi=newJiaShi(); 26. wangPo=newWangPo(jiaShi); 27. wangPo.makeEyesWithMan(); 28. wangPo.happyWithMan(); 29. 30. 31. 32. package xy;/* * * author 阿福() *水滸傳是這樣寫的:西門慶被潘金蓮用竹竿敲了一下,西門慶看癡迷了,被王婆看到了,就開始撮合兩人好事,王婆作為潘金蓮的代理人收了不少好處費(fèi),那我們假設(shè)一下: *如果沒有王婆在中間牽線,這兩個(gè)不要臉的能成事嗎?難說得很! */public class XiMenQiang /* * param args */public static void main(String args) WangPo wangPo;/把王婆叫出來 wangPo = new WangPo();/然后西門慶說,我要和潘金蓮Happy,然后王婆就安排了西門慶丟筷子哪出戲:wangPo.makeEyesWithMan();/看到?jīng)]有表面是王婆

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論