999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析C#設(shè)計模式之代理模式

2012-05-14 16:55:27沈鵬
卷宗 2012年10期

沈鵬

摘要:代理模式是常用的結(jié)構(gòu)型設(shè)計模式之一,當(dāng)無法直接訪問某個對象或訪問某個對象存在困難時可以通過一個代理對象來間接訪問,為了保證客戶端使用的透明性,所訪問的真實對象與代理對象需要實現(xiàn)相同的接口。根據(jù)代理模式的使用目的不同,代理模式又可以分為多種類型,例如保護代理、遠(yuǎn)程代理、虛擬代理、緩沖代理等,它們應(yīng)用于不同的場合,滿足用戶的不同需求。

關(guān)鍵詞:C#;設(shè)計模式;代理模式

一、代理模式概述

代理模式的英文叫做Proxy或Surrogate,中文都可譯成"代理"。所謂代理,就是一個人或者一個機構(gòu)代表另一個人或者另一個機構(gòu)采取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標(biāo)對象之間起到中介的作用。

代理模式是常用的結(jié)構(gòu)型設(shè)計模式之一,當(dāng)無法直接訪問某個對象或訪問某個對象存在困難時可以通過一個代理對象來間接訪問,為了保證客戶端使用的透明性,所訪問的真實對象與代理對象需要實現(xiàn)相同的接口。代理(Proxy)模式給某一個代理模式是一種對象結(jié)構(gòu)型模式。在代理模式中引入了一個新的代理對象,代理對象在客戶端對象和目標(biāo)對象之間起到中介的作用,它去掉客戶不能看到的內(nèi)容和服務(wù)或者增添客戶需要的額外的新服務(wù)。

二、代理模式的種類

如果按照使用目的來劃分,代理有以下幾種:

遠(yuǎn)程(Remote)代理:為一個位于不同的地址空間的對象提供一個局域代表對象。這個不同的地址空間可以是在本機器中,也可是在另一臺機器中。遠(yuǎn)程代理又叫做大使(Ambassador)。

虛擬(Virtual)代理:根據(jù)需要創(chuàng)建一個資源消耗較大的對象,使得此對象只在需要時才會被真正創(chuàng)建。

Copy-on-Write代理:虛擬代理的一種。把復(fù)制(克隆)拖延到只有在客戶端需要時,才真正采取行動。

保護(Protect or Access)代理:控制對一個對象的訪問,如果需要,可以給不同的用戶提供不同級別的使用權(quán)限。

Cache代理:為某一個目標(biāo)操作的結(jié)果提供臨時的存儲空間,以便多個客戶端可以共享這些結(jié)果。

防火墻(Firewall)代理:保護目標(biāo),不讓惡意用戶接近。

同步化(Synchronization)代理:使幾個用戶能夠同時使用一個對象而沒有沖突。

智能引用(Smart Reference)代理:當(dāng)一個對象被引用時,提供一些額外的操作,比如將對此對象調(diào)用的次數(shù)記錄下來等。

在所有種類的代理模式中,虛擬(Virtual)代理、遠(yuǎn)程(Remote)代理、智能引用代理(Smart Reference Proxy)和保護(Protect or Access)代理是最為常見的代理模式。

三、遠(yuǎn)程代理的例子

Achilles是一個用來測試網(wǎng)站的安全性能的工具軟件。Achilles相當(dāng)于位于客戶端的的一個桌面代理服務(wù)器,在一個HTTP過程里起到一個中間人的作用,但是Achilles與通常的代理服務(wù)器又有不同。Achilles截獲雙向的通信數(shù)據(jù),使得Achilles軟件的用戶可以改變來自和發(fā)往網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù),甚至可以攔截并修改SSL通訊。另外一個例子就是Windows的快捷方式。快捷方式是它所引用的程序的一個代理。

四、代理模式結(jié)構(gòu)與實現(xiàn)

代理模式的結(jié)構(gòu)比較簡單,其核心是代理類,為了讓客戶端能夠一致性地對待真實對象和代理對象,在代理模式中引入了抽象層。

代理模式包含如下三個角色:

Subject(抽象主題角色):它聲明了真實主題和代理主題的共同接口,這樣一來在任何使用真實主題的地方都可以使用代理主題,客戶端通常需要針對抽象主題角色進行編程。

Proxy(代理主題角色):它包含了對真實主題的引用,從而可以在任何時候操作真實主題對象;在代理主題角色中提供一個與真實主題角色相同的接口,以便在任何時候都可以替代真實主題;代理主題角色還可以控制對真實主題的使用,負(fù)責(zé)在需要的時候創(chuàng)建和刪除真實主題對象,并對真實主題對象的使用加以約束。通常,在代理主題角色中,客戶端在調(diào)用所引用的真實主題操作之前或之后還需要執(zhí)行其他操作,而不僅僅是單純調(diào)用真實主題對象中的操作。

在實際開發(fā)過程中,代理類的實現(xiàn)比上述代碼要復(fù)雜很多,代理模式根據(jù)其目的和實現(xiàn)方式不同可分為很多種類。

參考文獻

[1] 林舒萍,羅鍵.設(shè)計模式的應(yīng)用研究[J]. 計算機工程與設(shè)計. 2005(11)

[2] 陳智.在VB.NET中使用設(shè)計模式[J]. 甘肅科技. 2006(10)

[3] 夏浩波.單例模式的設(shè)計與應(yīng)用[J]. 電腦開發(fā)與應(yīng)用. 2011(01)

[4]丁中文,王懷軍.在C#中使用設(shè)計模式科技創(chuàng)新導(dǎo)報[J]. 2007(12)

主站蜘蛛池模板: 国产h视频免费观看| 波多野吉衣一区二区三区av| 一区二区三区四区日韩| a级毛片一区二区免费视频| 综合色88| 日韩小视频网站hq| 国产精品任我爽爆在线播放6080 | 亚洲欧美日韩中文字幕在线一区| yjizz视频最新网站在线| 亚洲乱码精品久久久久..| 91久草视频| 中文字幕久久亚洲一区| 婷婷色婷婷| 99无码中文字幕视频| 国产69精品久久| 亚洲成人黄色在线观看| 精品综合久久久久久97超人该| 色哟哟色院91精品网站| 国产精品无码在线看| 日本爱爱精品一区二区| 久无码久无码av无码| 综合成人国产| 久久精品人人做人人| 91九色国产porny| 久久a级片| 波多野结衣在线se| 久久大香香蕉国产免费网站| 婷婷99视频精品全部在线观看 | 欧美视频在线不卡| 91无码人妻精品一区| 国产亚洲精品97AA片在线播放| 69av在线| 亚洲欧美一级一级a| 在线观看国产精美视频| 永久在线精品免费视频观看| 高清亚洲欧美在线看| 亚洲精品福利视频| 亚洲精品国产综合99| 亚洲精品自在线拍| 激情午夜婷婷| 色综合天天综合中文网| 久久成人国产精品免费软件| 亚洲国产天堂久久综合226114| 97国产在线观看| 高清免费毛片| 成人第一页| 午夜啪啪福利| m男亚洲一区中文字幕| 99精品久久精品| 国产乱子伦一区二区=| 国产精品久久久久久搜索| 日本中文字幕久久网站| 久久不卡精品| 日本色综合网| 亚洲成人在线免费观看| 久久久久人妻一区精品| 亚洲V日韩V无码一区二区| 欧美成人区| 五月婷婷中文字幕| 伊人婷婷色香五月综合缴缴情| 最新痴汉在线无码AV| 精品国产一二三区| 精品欧美一区二区三区在线| 国产69精品久久久久妇女| 日本人又色又爽的视频| 国产亚洲精品97AA片在线播放| 中文字幕乱妇无码AV在线| 国产免费久久精品99re不卡| 免费看av在线网站网址| 欧美视频在线播放观看免费福利资源 | 毛片网站在线播放| 免费毛片全部不收费的| 91福利免费视频| 国产黄网站在线观看| 欧美成在线视频| 最新加勒比隔壁人妻| 又爽又大又光又色的午夜视频| 秋霞国产在线| 亚洲精品国产成人7777| 国产剧情国内精品原创| 最近最新中文字幕在线第一页 | 国产亚洲成AⅤ人片在线观看|