代理模式:為其他對象提供一種代理以控制對這個對象的訪問。
Subject類,定義了RealSubject和Proxy的共用接口,這樣就在任何使用RealSubject的地方都可以使用Proxy。
RealSubject類,定義Proxy所代表的真實實體
Proxy類,保存一個引用使得代理可以訪問實體,並提供一個與Subject的接口相同的接口,這樣代理就可以來替代實體。
Subject類
RealSubject類
Proxy類
(realSubject == =
客戶端調用
Main(=
運行效果
代理模式一般分為以下幾種:
第一種,遠程代理,也就是為一個對象在不同的地址空間提供局部代表。這樣可以隱藏一個對象存在於不同地址空間的事實。
.NET中的WebService就是遠程代理模式的一個應用實例。
第二種,虛擬代理,是根據需要創建開銷很大的對象。通過它來存放實例化需要很長的時間的真實對象。
浏覽器當中就是通過代理模式來優化下載的。
第三種,安全代理,用來控制真實對象訪問時的權限。
一般用於對象應該有不同的訪問權限的時候。
第四種,智能指引,是指當調用真實的對象時,代理處理另外一件事。