激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php設計模式 Proxy (代理模式)

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

2019-12-02 13:42PHP教程網 PHP教程

為其他對象提供一個代理以控制這個對象的訪問

代理,指的就是一個角色代表另一個角色采取行動,就象生活中,一個紅酒廠商,是不會直接把紅酒零售客戶的,都是通過代理來完成他的銷售業務。而客戶,也不用為了喝紅酒而到處找工廠,他只要找到廠商在當地的代理就行了,具體紅酒工廠在那里,客戶不用關心,代理會幫他處理。 

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

代理模式涉及的角色: 

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

復制代碼代碼如下:


<?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(); 


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

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品视频国产 | 欧美精品日日鲁夜夜添 | 毛片在线视频在线播放 | 久久精品视频7 | 日韩美香港a一级毛片免费 日韩激情 | 国产色视频免费 | 国产免费激情视频 | 成人黄色免费视频 | 久久久久一区二区三区 | 夜夜看 | 欧美性受xxx黑人xyx性爽 | 精品亚洲va在线va天堂资源站 | 狠狠99 | 久久精品一区二区三区四区五区 | 久久精品中文字幕 | 久久久久久91 | 国产美女的小嫩bbb图片 | 久久中出 | 久久久久久久久成人 | 久久国产一级片 | 桥本有菜免费av一区二区三区 | 在线视频观看一区二区 | 国产一区二区三区在线观看视频 | 美女在线视频一区二区 | 中文在线国产 | 国产精品一区二区视频 | 久久久成人动漫 | 一区二区三区欧美在线观看 | av在线高清观看 | 久久精品亚洲一区二区三区观看模式 | 欧美成年人在线视频 | 亚洲福利视频52 | 日本黄色一级电影 | 日韩区在线 | 国产免费一区二区三区 | 久久国产一二区 | 欧美一级α片 | 国产精品久久久久久久久久久天堂 | 黄色网战入口 | 精品国产一区二区三区四区在线 | 羞羞视频免费视频欧美 |