八、Proxy 代理模式 (結構型)

八、Proxy 代理模式 (結構型)
1、意圖:爲其他對象提供一種代理以控制對這個對象的訪問。

2、場景:代理模式非常常用,大致的思想就是通過爲對象加一個代理來降低對象的使用複雜度、或是提升對象使用的友好度、或是提高對象使用的效率。在現實生活中也有很多代理的角色,比如明星的經紀人,他就是一種代理,經紀人爲明星處理很多對外的事情,目的是爲了節省被代理對象也就是明星的時間。保險代理人幫助投保人辦理保險,目的降低投保的複雜度。
     在開發中代理模式也因爲目的不同效果各不相同。比如,如果我們的網站程序是通過.NET Remoting來訪問帳號服務的。在編寫代碼的時候可能希望直接引用帳號服務的DLL,直接實例化帳號服務的類型以方便調試。那麼,我們可以引入Proxy模式,做一個帳號服務的代理,網站只需要直接調用代理即可。在代理內部實現正式和測試環境的切換,以及封裝調用.NET Remoting的工作。

 

示例代碼


5、何時採用
  -- 代理模式應用非常廣泛,如果你希望降低對象的使用複雜度、或是提升對象使用的友好度、或是提高對象使用的效率都可以考慮代理模式。

6、實現要點
  -- 代理對象和被代理對象都遵循一致的接口。
  -- 在某些情況下,可以不必保持接口一致性,如果封裝確實需要損失一些透明度,那麼也可以認爲是Proxy。

7、注意事項
  -- Proxy、Facade以及Adapter可能都是對對象的一層封裝,側重點不同。Proxy基於一致的接口進行封裝,Facade針對封裝子系統,轉化爲高層接口,而Adapter的封裝是處於適配接口的目的。

發佈了97 篇原創文章 · 獲贊 9 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章