天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php設(shè)計模式 Proxy (代理模式)

代理,指的就是一個角色代表另一個角色采取行動,就象生活中,一個紅酒廠商,是不會直接把紅酒零售客戶的,都是通過代理來完成他的銷售業(yè)務(wù)。而客戶,也不用為了喝紅酒而到處找工廠,他只要找到廠商在當(dāng)?shù)氐拇砭托辛耍唧w紅酒工廠在那里,客戶不用關(guān)心,代理會幫他處理。

代理模式,就是給某一對象提供代理對象,并由代理對象控制具體對象的引用。

代理模式涉及的角色:

抽象主題角色,聲明了代理主題和真實主題的公共接口,使任何需要真實主題的地方都能用代理主題代替。
代理主題角色,含有真實主題的引用,從而可以在任何時候操作真實主題,代理主題功過提供和真實主題相同的接口,使它可以隨時代替真實主題。代理主題通過持有真實主題的引用,不但可以控制真實主題的創(chuàng)建或刪除,可以在真實主題被調(diào)用前進(jìn)行攔截,或在調(diào)用后進(jìn)行某些操作。
真實代理對象,定義了代理角色所代表的具體對象。
參考一下代碼:

復(fù)制代碼 代碼如下:
<?php
/**
* 代理模式
*
* 為其他對象提供一個代理以控制這個對象的訪問
*
*/
interface Proxy
{
public function request();
public function display();
}

class RealSubject
{
public function request()
{
echo "RealSubject request<br/>";
}

public function display()
{
echo "RealSubject display<br/>";
}
}

class ProxySubject
{
private $_subject = null;
public function __construct()
{
$this->_subject = new RealSubject();
}

public function request()
{
$this->_subject->request();
}

public function display()
{
$this->_subject->display();
}
}

$objProxy = new ProxySubject();
$objProxy->request();
$objProxy->display();

代理模式的工作方式:首先,因為代理主題和真實主題都實現(xiàn)了共同的接口,這使我們可以在不改變原來接口的情況下,只要用真實主題對象的地方,都可以用代理主題來代替。其次,代理主題在客戶和真實主題之間起了一個中介作用,利用這個中介平臺,我們可以在把客戶請求傳遞給真實主題之前做一些必要的預(yù)處理。

還有一個很常見的代理模式的使用例子就是對大幅圖片瀏覽的控制。在我們常見的網(wǎng)站上面瀏覽圖文的信息時,不知道你有沒有注意到,圖片位置放置的是經(jīng)過縮小的,當(dāng)有人要仔細(xì)的查看這個圖片時,可以通過點擊圖片來激活一個鏈接,在一個新的網(wǎng)頁打開要看的圖片 。這樣對于提高瀏覽速度是很有好處的,因為不是每個人都要去看仔細(xì)圖上的信息。這種情況就可以使用代理模式來全面實現(xiàn)。這里我將思路表述出來,至于實現(xiàn)由于工作原因,就不表述了,至于這種方式在B/S模式下的真實可行性,我沒有確認(rèn)過,只是憑空的想象。如果不是可行的方式,那這個例子可以放到一個C/S下來實現(xiàn),這個是絕對沒有問題的,而且在很多介紹設(shè)計模式的書和文章中使用。兩種方式的實現(xiàn)有興趣的可以來嘗試一下:)

我們在瀏覽器中訪問網(wǎng)頁時是調(diào)用的不是真實的裝載圖片的方法,而是在代理對象中的方法,在這個對象中,先使用一個線程向瀏覽器裝載了一個縮小版的圖片,而在后臺使用另一個線程來調(diào)用真實的裝載大圖片的方法將圖片加載到本地,當(dāng)你要瀏覽這個圖片的時候,將其在新的網(wǎng)頁中顯示出來。當(dāng)然如果在你想瀏覽的時候圖片尚未加載成功,可以再啟動一個線程來顯示提示信息,直到加載成功。

這樣代理模式的功能就在上面體現(xiàn)的淋漓盡致――通過代理來將真實圖片的加載放到后臺來操作,使其不影響前臺的瀏覽。

代理模式能夠協(xié)調(diào)調(diào)用者和被調(diào)用者,能夠在一定程度上降低系統(tǒng)的耦合度。不過一定要記住前面講的使用代理模式的條件,不然的話使用了代理模式不但不會有好的效果,說不定還會出問題的。

php技術(shù)php設(shè)計模式 Proxy (代理模式),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 美女视频黄a视频全免费网站色窝 | 久久久96人妻无码精品蜜桃 | 国产在线亚洲精品观 | 2021国产精品一卡2卡三卡4卡 | 国产亚洲人成网站在线观看播放 | 灌饱娇嫩H将军公主最新章节 | 帅小伙和警官同性3p | 欧美午夜特黄AAAAAA片 | 99久久99久久免费精品蜜桃 | 一边摸一边桶一边脱免费 | 色一伦一情一区二区三区 | 97成人在线 | 99精品在线免费 | 国产精品视频人人做人人爽 | 国语自产视频在线 | 色一欲一性一乱一区二区三区 | 精品国产人妻国语 | 九九大香尹人视频免费 | 伦理片在线线手机版韩国免费观看 | 国产永不无码精品AV永久 | 99精品国产在热久久 | 一个人免费完整在线观看影院 | 久久足恋网 | 亚洲精品久久AV无码蜜桃 | 闺蜜撬开我的腿用黄瓜折磨我 | 国产精品一国产AV麻豆 | 韩剧19禁啪啪无遮挡大尺度 | 91久久夜色精品 | 国产又黄又粗又爽又色的视频软件 | 偷柏自拍亚洲综合在线 | 日日做夜夜欢狠狠免费软件 | 18禁黄无遮挡禁游戏在线下载 | 无码国产成人777爽死在线观看 | 国产成人精视频在线观看免费 | 久久夜色噜噜噜亚洲AV0000 | 2021国产精品久久久久精品免费网 | 九九精品视频一区二区三区 | 亚洲人成人77777在线播放 | 最近中文字幕完整版免费 | 中文文字幕文字幕亚洲色 | 亚洲精品美女久久久久99 |