


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、介紹一下代理模式(proxy)當(dāng)我們需要使用的對象很復(fù)雜或者需要很長時間去構(gòu)造,這時就可以使用代理模式(proxy)。例如:如果構(gòu)建一個對象很耗費時間和 計算機(jī)資源,代理模式(proxy)允許我們控制這種情況,直到我們需 要使用實際的對象。一個代理(proxy)通常包含和將要使用的對象同 樣的方法,一旦開始使用這個對象,這些方法將通過代理(proxy)傳遞給實際的對象。一些可以使用代理模式(proxy)的情況:一個對象, 比如一幅很大的圖像,需要載入的時間很長。一個需要很長時間才可 以完成的計算結(jié)果,并且需要在它計算過程中顯示中間結(jié)果一個存在 于遠(yuǎn)程計算機(jī)上的對象,需要通過網(wǎng)絡(luò)載入這個遠(yuǎn)程對象
2、則需要很長 時間,特別是在網(wǎng)絡(luò)傳輸高峰期。一個對象只有有限的訪問權(quán)限,代 理模式(proxy)可以驗證用戶的權(quán)限代理模式(proxy)也可以被用來區(qū) 別一個對象實例的請求和實際的訪問,例如:在程序初始化過程中可能建立多個對象,但并不都是馬上使用,代理模式(proxy)可以載入需要的真正的對象。這是一個需要載入和顯示一幅很大的圖像的程 序,當(dāng)程序啟動時,就必須確定要顯示的圖像,但是實際的圖像只能 在完全載入后才可以顯示!這時我們就可以使用代理模式(proxy)。這個代理模式(proxy)可以延遲實際圖像的載入,直到它接收到一個 paint請求。在實際圖像的載入期間我們可以通過代理模式(proxy
3、)在實際圖像要顯示的位置預(yù)先載入一個比較小、簡單的圖形。圖像iiproxy 代碼: public class imageproxyprivate done as booleanprivate tm as timerpublic sub new()done = false設(shè)置 timer 延遲 5秒 tm =newtimer(_newtimercallback(addressof tcallback), me,5000,0)endsubpublic function isready() as booleanreturn doneend functionpublic function getima
4、ge() as imagedim img as imager 顯示預(yù)先的圖像,直到實際圖像載入完成if isreadythenimg = new finalimage()elseimg = new quickimage()end ifreturn img.getimageend functionpublic sub tcallback(byval obj as object)done = truetm.dispose()end subend class 定義 個簡單的接口 : public interface imagerfunction getimage() as imageend inte
5、rface實現(xiàn)接口:預(yù)先載入的圖像的類:public classquickimageimplements imagerpublic function getimage() asimage _implements imager.getimagereturn new bitmap( box.gif )end functionend class 載入實際圖像的類: public class finalimageimplements imagerpublic function getimage() as image _implements imager.getimagereturn new bitma
6、p( flowrtree.jpg )end functionend class在顯示圖像的窗體中,定義一個圖像代理的(proxy)實例,在載入圖像按鈕事件 中,載入圖像:private imgproxy as imageproxypublic sub new()mybase.newform1 = meinitializecomponentimgproxy =new imageproxy()end subprotected sub btload_click(byvalsender as object, byval e as system.eventargs) handles btload.clickpic.image = imgproxy.getimageend sub 總結(jié):這 只是一個很簡單的例子(例子來自于c#設(shè)計模式),通過這個例子 可以對代理(p
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵件通知分發(fā)記錄表
- 健康管理與養(yǎng)生服務(wù)合作協(xié)議
- 中國寓言中的人物性格讀后感
- 企業(yè)內(nèi)訓(xùn)師培訓(xùn)教程作業(yè)指導(dǎo)書
- 生產(chǎn)車間承包協(xié)議
- 購買墳?zāi)雇恋貐f(xié)議書
- 邊坡支護(hù)施工合同
- 辦公室設(shè)備采購申請說明文書
- 西游記賞析傳統(tǒng)神話的魅力
- 走近哲學(xué)世界:大二哲學(xué)導(dǎo)論教學(xué)教案
- 內(nèi)分泌科護(hù)理常規(guī)的課件
- 疼痛科營銷方案
- 中醫(yī)藥在關(guān)節(jié)病變治療中的價值
- 《香水知識》課件
- 公務(wù)員獎勵審批表(表格)
- 倉庫6s檢查標(biāo)準(zhǔn)
- 申請撤銷協(xié)助執(zhí)行通知書范本
- 拉伸法測彈性模量
- 裝修項目經(jīng)理的簡歷樣板
- 現(xiàn)代農(nóng)業(yè)物聯(lián)網(wǎng)培訓(xùn)課程
- 撞擊力計算公式詳解
評論
0/150
提交評論