【1】基本概念
代理模式(Proxy):為其他對象提供一種代理以控制對這個對象的訪問。代理者可以作任何東西的接口:網絡連接、內存中的大物件、檔案或其它昂貴或無法復制的資源。
【2】簡單分析
我們先看一下該設計模式的UML結構圖:
我們通過上面的結構圖可以看到:
Subject類:定義了RealSubject和Proxy的共用接口,這樣就可以在任何使用RealSubject的地方都可以用Proxy。
RealSubject類:定義Proxy所代表的真實實體。
Proxy類:保存一個引用使得代理可以訪問實體,并提供一個與Subject的接口相同的接口,這樣代理就可以用來替代實體。
【3】如何用java語言實現該模式
我們先看下代碼的結構圖,該模式的代碼實現比較簡單:
3.1 Subject類:Image.java
3.2 RealSubject類:RealImage.java
3.3 Proxy類:ProxyImage.java
3.4 客戶端測試類:ProxyClient.java
【4】程序運行結果:
總結下代理模式的應用場合:
第一:遠程代理,也就是為一個對象在不同的地址空間提供局部代表,這樣可以隱藏一個對象存在于不同地址空間的事實。
第二:虛擬代理,是根據需要創建開銷很大的對象,通過它來存放實例化需要很長時間的真實對象。
第三:安全代理,用來控制真實對象訪問時的權限。
第四:智能引用,是指當調用真實對象時,代理處理另外一些事。本文的例子就是采用了這一點。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
