|
當我們需要使用的對象很復雜或者需要很長時間去構造,這時就可以使用代理模式(Proxy)。例如:如果構建一個對象很耗費時間和計算機資源,代理模式(Proxy)允許我們控制這種情況,直到我們需要使用實際的對象。一個代理(Proxy)通常包含和將要使用的對象同樣的方法,一旦開始使用這個對象,這些方法將通過代理(Proxy)傳遞給實際的對象。
一些可以使用代理模式(Proxy)的情況:
1、一個對象,比如一幅很大的圖像,需要載入的時間很長。
2、一個需要很長時間才可以完成的計算結果,并且需要在它計算過程中顯示中間結果
3、一個存在于遠程計算機上的對象,需要通過網絡載入這個遠程對象則需要很長時間,特別是在網絡傳輸高峰期。
代理模式(Proxy)也可以被用來區別一個對象實例的請求和實際的訪問,例如:在程序初始化過程中可能建立多個對象,但并不都是馬上使用,代理模式(Proxy)可以載入需要的真正的對象。
這是一個需要載入和顯示一幅很大的圖像的程序,當程序啟動時,就必須確定要顯示的圖像,但是實際的圖像只能在完全載入后才可以顯示!這時我們就可以使用代理模式(Proxy)。
這個代理模式(Proxy)可以延遲實際圖像的載入,直到它接收到一個paint請求。在實際圖像的載入期間我們可以通過代理模式(Proxy)在實際圖像要顯示的位置預先載入一個比較小、簡單的圖形。
圖像Proxy代碼:
Public Class ImageProxy
Private done As Boolean
Private tm As Timer
Public Sub New()
done = False
it知識庫:淺析.NET開發中代理模式的使用,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。