代理模式Proxy Pattern

一、背景


在某些情況下,一個客戶不想或者不能直接引用一個對 象,此時可以通過一個稱之爲“代理”的第三者來實現 間接引用。代理對象可以在客戶端和目標對象之間起到 中介的作用,並且可以通過代理對象去掉客戶不能看到 的內容和服務或者添加客戶需要的額外服務。

通過引入一個新的對象(如小圖片和遠程代理 對象)來實現對真實對象的操作或者將新的對 象作爲真實對象的一個替身,這種實現機制即 爲代理模式,通過引入代理對象來間接訪問一 個對象,這就是代理模式的模式動機。

二、模式定義

代理模式(Proxy Pattern) :給某一個對象提供一個代 理,並由代理對象控制對原對象的引用。代理模式的英 文叫做Proxy或Surrogate,它是一種對象結構型模式。

三、模式結構

代理模式包含如下角色:
  Subject: 抽象主題角色
  Proxy: 代理主題角色
  RealSubject: 真實主題角色
  
代理模式結構類圖如下:
代理模式類圖

其調用時序如下:
代理模式時序圖

四、應用實例

// demo 代碼

五、使用場景

六、優缺點

1. 代理模式的優點
- 代理模式能夠協調調用者和被調用者,在一定程度上降低了系 統的耦合度。
- 遠程代理使得客戶端可以訪問在遠程機器上的對象,遠程機器 可能具有更好的計算性能與處理速度,可以快速響應並處理客戶端請求。
- 虛擬代理通過使用一個小對象來代表一個大對象,可以減少系 統資源的消耗,對系統進行優化並提高運行速度。
- 保護代理可以控制對真實對象的使用權限。

2. 代理模式的缺點
- 由於在客戶端和真實主題之間增加了代理對象,因此 有些類型的代理模式可能會造成請求的處理速度變慢。
- 實現代理模式需要額外的工作,有些代理模式的實現 非常複雜。
-

七、模式擴展

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章