close
[Design Pattern] 代理模式 (Proxy Pattern)
3.2 代理模式優缺點
優點
- 真實角色(RealSubject)完成實際的商業邏輯,其他非它的職責交由代理完成
=> 呼叫介面由Proxy去負責,內部實作核心則由RealSubject去完成
- 當真實角色商業邏輯變化時,只要Subject定義的介面不變,Proxy仍不用修改而正常使用
=> 當商業邏輯有變更時,可以鎖定RealSubject進行擴充,又可以確保Proxy可以正常運作
缺點
- 客戶需透過代理才能請求真實角色做事,處理速度會變慢。
3.3 代理模式的應用
- 遠程代理:可以為不同地址空間的物件提供一個本地的代理物件,比如Web Service,在.NET有WebReference、Java有RMI
- 虛擬代理:是根據需建立消耗大資源的物件,先建立一個小的物件,等待真實角色實例化完成。比如使用Web或者視窗程式,在讀取圖片時,會先用"Loadiing..."等待畫面給客戶看,當真實圖片載入完成後,再實際顯示給客戶
- 保護代理:依照客戶的權限,來控制對真實角色的存取
- 智能引用:當代理呼叫真實角色時,代理會做其他的功能,比如計算真實角色被呼叫的次數
- 快取代理:將真實角色的運算結果儲存在臨時的共同空間,多個客戶可以取這些共同的結果
全站熱搜
留言列表