設計模式課件-10 代理模式_第1頁
設計模式課件-10 代理模式_第2頁
設計模式課件-10 代理模式_第3頁
設計模式課件-10 代理模式_第4頁
設計模式課件-10 代理模式_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、任課教師:張偉芝任課教師:張偉芝第十章第十章 代理模式代理模式任課教師:張偉芝 上節回顧任課教師:張偉芝 課程內容 環境和問題 代理模式詳解 代理模式實現 擴展話題任課教師:張偉芝 課程內容 環境和問題 代理模式詳解 代理模式實現 擴展話題任課教師:張偉芝 日常生活中的代理 代理簽證 服裝代理商 代理服務器任課教師:張偉芝zhangw

2、 代理模式動機 一個客戶不想或者不能直接引用另一個對象,此時可以通過一個稱之為“代理”的第三者來實現間接引用。 代理對象可以在客戶端和目標對象之間起到中介的作用。 可以通過代理對象去掉客戶不能看到的內容和服務或者添加客戶需要的額外服務。任課教師:張偉芝 代理模式動機任課教師:張偉芝 代理模式動機任課教師:張偉芝 課程內容 環境和問題 代理模式詳解 代理模式實現 擴展話題任課教師:張偉芝 代

3、理模式定義 給某一對象提供一個代理,并由代理對象控制對原對象的引用。 代理模式英文名稱 Proxy Pattern Surrogate Pattern任課教師:張偉芝 代理模式結構 抽象主題 代理主題 真實主題任課教師:張偉芝 代理模式結構 代理模式示意結構圖比較簡單,一般可以簡化為如下圖所示:任課教師:張偉芝 代理模式調用順序示意圖任課教師:張偉芝 課程內容 環境和問題 代理模式詳解 代理模式實現 擴展話題任課教師:張

4、偉芝 代理模式案例 圖片延遲加載 我們打算建立一個應用程序,用來展示圖片,由于圖片像素非常大,加載可能需要一些時間,所以在等待加載圖像的時候,應該顯示一些提示,比如“圖片加載中,請稍候”,一旦加載完成,則顯示圖片。任課教師:張偉芝 代理模式案例 紅酒代理商 一個紅酒廠商,是不會直接把紅酒零售客戶的,都是通過代理來完成他的銷售業務的.而客戶,也不用為了喝紅酒而到處找工廠,他只要找到廠商在當地的代理就行了,具體紅酒工廠在那里,客戶不用關心,代理會幫他處理. 任課教師:張偉芝zhangweizhieud2act.

5、org 課程內容 環境和問題 代理模式詳解 代理模式實現 擴展話題任課教師:張偉芝 代理模式與適配器模式任課教師:張偉芝 代理模式與適配器模式 相似性 都為一個對象提供間接性訪問 都是從自身以外的一個接口向對象轉發請求 不同性 適配器模式面對不同接口 代理模式面對相同接口任課教師:張偉芝 代理模式變體 遠程(Remote)代理:為一個位于不同的地址空間的對象提供一個本地的代表對象,這個不同的地址空間可以是在同一臺主機中,也可是在另一臺主機中,遠程代理又叫做大使(A

6、mbassador)。 虛擬(Virtual)代理:如果需要創建一個資源消耗較大的對象,先創建一個消耗相對較小的對象來表示,真實對象只在需要時才會被真正創建。 Copy-on-Write代理:它是虛擬代理的一種,把復制(克隆)操作延遲到只有在客戶端真正需要時才執行。一般來說,對象的深克隆是一個開銷較大的操作,Copy-on-Write代理可以讓這個操作延遲,只有對象被用到的時候才被克隆。任課教師:張偉芝 代理模式變體 保護(Protect or Access)代理:控制對一個對象的訪問,可以給不同的用戶提供不同級別的使用權限。 緩沖(Cache)代理

7、:為某一個目標操作的結果提供臨時的存儲空間,以便多個客戶端可以共享這些結果。 防火墻(Firewall)代理:保護目標不讓惡意用戶接近。 同步化(Synchronization)代理:使幾個用戶能夠同時使用一個對象而沒有沖突。 智能引用(Smart Reference)代理:當一個對象被引用時,提供一些額外的操作,如將此對象被調用的次數記錄下來等。任課教師:張偉芝 幾種常用的代理模式案例 訂單訪問權限控制代理 現在有一個訂單系統,要求是:一旦訂單被創建,只有訂單的創建人才可以修改訂單中的數據,其他人則不能修改。 在本實例中我們使用代理模式中的保護代理

8、,該代理用于控制對一個對象的訪問,可以給不同的用戶提供不同級別的使用權限任課教師:張偉芝 幾種常用的代理模式案例 論壇權限控制代理任課教師:張偉芝 小結 在代理模式中,要求給某一個對象提供一個代理,并由代理對象控制對原對象的引用。代理模式的英文叫做Proxy或Surrogate,它是一種對象結構型模式。 代理模式包含三個角色:抽象主題角色聲明了真實主題和代理主題的共同接口;代理主題角色內部包含對真實主題的引用,從而可以在任何時候操作真實主題對象;真實主題角色定義了代理角色所代表的真實對象,在真實主題角色中實

9、現了真實的業務操作,客戶端可以通過代理主題角色間接調用真實主題角色中定義的方法。任課教師:張偉芝 小結 代理模式的優點在于能夠協調調用者和被調用者,在一定程度上降低了系統的耦合度;其缺點在于由于在客戶端和真實主題之間增加了代理對象,因此有些類型的代理模式可能會造成請求的處理速度變慢,并且實現代理模式需要額外的工作,有些代理模式的實現非常復雜。 遠程代理為一個位于不同的地址空間的對象提供一個本地的代表對象,它使得客戶端可以訪問在遠程機器上的對象,遠程機器可能具有更好的計算性能與處理速度,可以快速響應并處理客戶端請求。任課教師:張偉芝 小結 如果需要創建一個資

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論