



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java中的代理模式(Proxy)SpringAOP的底層實現就是代理模式,那么代理模式是什么呢?代理分為靜態代理和動態代理它們的區別其實就是靈活性,靜態代理?般都是寫死的代碼,?動態代理則是?動?成的,相對來說?較靈活代理的??:抽象??(如:賣房):?般使?接?或抽象類真實??(如:房東):被代理的??代理??(如:房產中介):代理真實??,代理真實??后,?般會添加額外操作訪問代理的??(如:我)1、靜態代理情景:我要買房,我找到房產中介,房產中介拿房東的房給我看抽象??接?:賣房/***賣房*/publicinterfaceSellers{publicvoidsell();}真實??:房東/***房東*/publicclassLandlordimplementsSellers{@Overridepublicvoidsell(){System.out.println("房東要出租房?");}}代理??:房產中介/***房產中介*/publicclassIntermediaryimplementsSellers{privateLandlordlandlord;publicIntermediary(Landlordlandlord){this.landlord=landlord;}@Overridepublicvoidsell(){host.sell();}publicvoidshowings(){System.out.println("中介帶你看房");}}訪問代理的??:我/***我*/publicclassMe{publicstaticvoidmain(String[]args){Intermediaryintermediary=newIntermediary(newLandlord());intermediary.sell();intermediary.showings();}}2、動態代理情景:與靜態代理相同情景:我要買房,我找到房產中介,房產中介拿房東的房給我看抽象??接?:賣房/***賣房*/publicinterfaceSellers{publicvoidsell();}真實??:房東/***房東*/publicclassLandlordimplementsSellers{@Overridepublicvoidsell(){System.out.println("房東要出租房?");}}代理??:房產中介packagecom.hu.demo04;importcom.hu.demo03.Rent;importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.lang.reflect.Proxy;/***動態代理*使?這個類?動?成代理類*/publicclassProxyInvocationHandlerimplementsInvocationHandler{privateObjecttarget;publicvoidsetTarget(Objecttarget){this.target=target;}publicObjectgetProxy(){returnProxy.newProxyInstance(this.getClass().getClassLoader(),target.getClass().getInterfaces(),this);}@OverridepublicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{Objectresult=method.invoke(target,args);showings();returnresult;}publicvoidshowings(){System.out.println("中介帶你看房");}}訪問代理的??:我packagecom.hu.demo03;publicclassMe{publicstaticvoidmain(String[]args){Landlordlandlord=newLandlord();//真實??ProxyInvocationHandlerpih=newProxyInvocationHandler();//代理??pih.setTarget(landlord);//通過調?程序處理??來處理我們要調?的接?對象Sellersproxy=(Sellers)pih.getProxy();//獲得動態代理對象//執?代理接?的?法proxy.sell();}}動態代理的好處可以使真實??的操作更加純粹,不?去關注?些公共
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省新鄉市新鄉市一中2025屆化學高一下期末質量檢測試題含解析
- 統編版2024-2025學年一年級語文第二學期期末階段質量檢測
- 高考英語寫作萬能模板(素材)
- 北京車輛登記管理辦法
- 北航科技競賽管理辦法
- 非物質文化遺產的保護與傳承
- FPGA信號發生器原理與應用
- 古代文學作品鑒賞與解讀
- 普通小店晉升管理辦法
- 民航數據共享管理辦法
- 酒店前臺案例分析
- 消防應急通信培訓
- 消防應急通信保障
- XX小學預防未成年人違法犯罪工作制度
- 火災自動報警系統查驗報告
- 業務傭金提成協議書模板
- GB/T 29469-2024潔凈室及相關受控環境性能及合理性評價
- 國家開放大學《城市管理學》作業-“城市病”表現及其治理
- 甄嬛傳電子版劇本第01-10集
- 【中國信科-中信科移動】2023星地融合通信白皮書
- 廚師中暑防范知識講座
評論
0/150
提交評論