設(shè)計(jì)模式課件-10 代理模式_第1頁
設(shè)計(jì)模式課件-10 代理模式_第2頁
設(shè)計(jì)模式課件-10 代理模式_第3頁
設(shè)計(jì)模式課件-10 代理模式_第4頁
設(shè)計(jì)模式課件-10 代理模式_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、任課教師:張偉芝任課教師:張偉芝第十章第十章 代理模式代理模式任課教師:張偉芝 上節(jié)回顧任課教師:張偉芝 課程內(nèi)容 環(huán)境和問題 代理模式詳解 代理模式實(shí)現(xiàn) 擴(kuò)展話題任課教師:張偉芝 課程內(nèi)容 環(huán)境和問題 代理模式詳解 代理模式實(shí)現(xiàn) 擴(kuò)展話題任課教師:張偉芝 日常生活中的代理 代理簽證 服裝代理商 代理服務(wù)器任課教師:張偉芝zhangw

2、 代理模式動(dòng)機(jī) 一個(gè)客戶不想或者不能直接引用另一個(gè)對(duì)象,此時(shí)可以通過一個(gè)稱之為“代理”的第三者來實(shí)現(xiàn)間接引用。 代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用。 可以通過代理對(duì)象去掉客戶不能看到的內(nèi)容和服務(wù)或者添加客戶需要的額外服務(wù)。任課教師:張偉芝 代理模式動(dòng)機(jī)任課教師:張偉芝 代理模式動(dòng)機(jī)任課教師:張偉芝 課程內(nèi)容 環(huán)境和問題 代理模式詳解 代理模式實(shí)現(xiàn) 擴(kuò)展話題任課教師:張偉芝 代

3、理模式定義 給某一對(duì)象提供一個(gè)代理,并由代理對(duì)象控制對(duì)原對(duì)象的引用。 代理模式英文名稱 Proxy Pattern Surrogate Pattern任課教師:張偉芝 代理模式結(jié)構(gòu) 抽象主題 代理主題 真實(shí)主題任課教師:張偉芝 代理模式結(jié)構(gòu) 代理模式示意結(jié)構(gòu)圖比較簡單,一般可以簡化為如下圖所示:任課教師:張偉芝 代理模式調(diào)用順序示意圖任課教師:張偉芝 課程內(nèi)容 環(huán)境和問題 代理模式詳解 代理模式實(shí)現(xiàn) 擴(kuò)展話題任課教師:張

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

5、org 課程內(nèi)容 環(huán)境和問題 代理模式詳解 代理模式實(shí)現(xiàn) 擴(kuò)展話題任課教師:張偉芝 代理模式與適配器模式任課教師:張偉芝 代理模式與適配器模式 相似性 都為一個(gè)對(duì)象提供間接性訪問 都是從自身以外的一個(gè)接口向?qū)ο筠D(zhuǎn)發(fā)請求 不同性 適配器模式面對(duì)不同接口 代理模式面對(duì)相同接口任課教師:張偉芝 代理模式變體 遠(yuǎn)程(Remote)代理:為一個(gè)位于不同的地址空間的對(duì)象提供一個(gè)本地的代表對(duì)象,這個(gè)不同的地址空間可以是在同一臺(tái)主機(jī)中,也可是在另一臺(tái)主機(jī)中,遠(yuǎn)程代理又叫做大使(A

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論