代理模式,也稱為委任模式,屬於『結構型模式』。
目的
為其他物件提供一種代理,以控制對這個物件的訪問。
角色
抽象主題(Subject):具體科目和代理的共用接口。
真實主題(RealSubject):具體科目,定義Proxy的真實實體。
代理類別(Proxy):一個代理的實體,與Subject相通的接口,代理就可以替代實體。
優點
- 一定程度上降低系統的耦合度。
- 遠程代理的機器可能有更好的性能和處理速度,可以快速響應客戶端請求。
- 虛擬代理用一個小對象代表一個大對象,減少資源消耗,提高運行速度。
- 保護代理控制使用權限
缺點
- 有些類型的代理,可能會造成請求的處理變慢。
- 有些代理需要額外工作,有些實現非常複雜。
UML
實際範例:送禮
- 抽象主題(Subject):使用送禮介面
1 |
|
- 真實主題(RealSubject):追求者
1 |
|
- 代理類別(Proxy)
1 |
|
- 使用方式
1 |
|