爲其餘對象提供一種代理以控制對這個對象的訪問html
通俗的來說代理模式就是咱們生活中常見的中介python
代理模式在平常生活中很常見,好比,你去雜貨店買一個插座,而不是去生產插座的工廠去買。再好比,你去訪問某個網站,你並無訪問權限,但你能夠經過代理去訪問這個網站,而後代理再把內容傳給你。安全
在某些狀況下,一個對象不適合或者不能直接引用另外一個對象,而代理對象能夠在客戶端和目標對象之間起到中介的做用網站
代理模式有3個必要的元素:spa
真實的對象(執行業務邏輯,被代理的對象).net
代理類(用戶請求的一個接口,對真實目標的保護)線程
用戶(獲取任務的用戶請求)3d
1.遠程代理,也就是爲一個對象在不一樣的地址空間提供局部表明。這樣能夠隱藏一個對象存在於不一樣地址空間的事實。代理
2.虛擬代理,是根據須要建立開銷大的對象。經過它來存放實例化須要很長時間的真是對象。用於惰性求值,將一個大計算量對象的建立延遲到真正須要的時候進行。例如html中,圖片須要load好久,因此經過虛擬代理來代替真實的圖片htm
3.安全代理,或叫保護/防禦代理:控制對敏感對象的訪問。用來控制真實對象訪問時的權限
4.智能(引用)代理:在對象被訪問時執行額外的動做。此類代理的例子包括引用計數和線程安全檢查。是指當調用真實的對象時,代理處理另一些事
代理模式主要使用了Python的多態和繼承,幹活的是被代理類,代理類主要是接活,你讓我幹活,好,我交給幕後的類去幹,你滿意就成,那怎麼知道被代理類能不能幹呢?同根就成,你們知根知底,你能作啥,我能作啥都清楚得很,一樣一個(基類)接口。
參考
https://www.cnblogs.com/Xjng/p/3878839.html 111
https://www.cnblogs.com/lizhitai/p/4476091.html
https://cloud.tencent.com/developer/news/394367
https://blog.csdn.net/liuskyter/article/details/80362722
https://www.cnblogs.com/onepiece-andy/p/python_proxy_pattern.html
https://blog.csdn.net/ruguowoshiyu/article/details/80967560